LINQ 按多個欄位排序
LINQ 按多個欄位排序(orderby、thenby、Take)
orderby 子句解析為 OrderBy()方法,orderby descending 子句解析為OrderBy Descending()方法:
var racers = Formula1.GetChampions().
Where(r = > r.Country == "Brazil").
OrderByDescending(r = > r.Wins).
Select(r = > r);
OrderBy() 和 OrderByDescending ()方法返回 IOrderEnumerable。這個介面派生於介面
IEnumerable,但包含一個額外的方法CreateOrderedEnumerable- ()。
這個方法用於進一步給序列排序。
如果根據關鍵字選擇器來排序,兩項的順序相同,就可以使用 ThenBy()和 ThenByDescending ()方法繼續排序。
這兩個方法需要 IOrderEnumerable才能工作,但也返回這個介面。
所以,可以新增任意多個 ThenBy()和 ThenByDescending ()方法,對集合排序。
使用 LINQ 查詢時,只需把所有用於排序的不同關鍵字(用逗號分隔開)新增到orderby 子句中。
這裡,
所有的賽手先按照國家排序,再按照姓氏排序,最後按照名字排序。
新增到 LINQ 查詢結果中的Take()擴充套件方法用於提取前 10 個結果:
private static void Ordering() { var racers = (from r in Formula1.GetChampions()orderby r.Country, r.LastName, r.FirstName select r).Take(10); foreach (var racer inracers) { Console.WriteLine("{0:C}: {0:L}, {0:F}", racer); //屬性名的第一個字母 } }
Lambda表示式 使用OrderBy()和 ThenBy()方法可以執行相同的操作:
private static void Ordering() {
var racers = Formula1.GetChampions(). OrderBy(r => r.Country). ThenBy(r => r.LastName). ThenBy(r => r.FirstName). Take(10);
foreach (var racer in racers) { Console.WriteLine("{0:C}: {0:L}, {0:F}", racer); //屬性名的第一個字母 }
}
相關文章
- C# 實現list=list.OrderBy(q=>q.欄位名).ToList(); 按多個欄位排序C#排序
- MySql Order By 多個欄位 排序規則MySql排序
- PHP 二維陣列, 按某一個欄位排序PHP陣列排序
- PHP陣列多個欄位分別排序PHP陣列排序
- SQL字元型欄位按數字型欄位排序實現方法SQL字元排序
- Spring MVC @SortDefault多欄位排序SpringMVC排序
- 欄位排序排序
- jQuery對Table一個欄位排序jQuery排序
- 快排實現仿order by多欄位排序排序
- 逆向工程通過某個欄位排序排序
- 將多個JSON欄位對映到單個Java欄位JSONJava
- 請教一下 多欄位值如何排序?排序
- PHP指定欄位的多維陣列排序方法PHP陣列排序
- mysql中文欄位排序MySql排序
- hadoop streaming 按欄位排序與輸出分割詳解Hadoop排序
- mysql sql同一個欄位多個行轉成一個欄位查詢MySql
- ElasticSearch多欄位權重排序居然可以這麼玩Elasticsearch排序
- Java stream sorted使用 Comparator 進行多欄位排序Java排序
- 二維陣列根據某個欄位排序陣列排序
- 哇,ElasticSearch多欄位權重排序居然可以這麼玩Elasticsearch排序
- 記錄一下mysql多欄位排序遇到的一個好玩的現象MySql排序
- mySql刪除多個表 刪除多個欄位的SQLMySql
- MySQL 按照指定的欄位排序MySql排序
- js記一個根據欄位排序物件函式JS排序物件函式
- PHP二維陣列根據某個欄位排序PHP陣列排序
- 查詢/刪除重複的資料(單個欄位和多個欄位條件)
- Oracle如何實現多個欄位去重Oracle
- oracle:聯表更新多個欄位的值Oracle
- Linq查詢之多個排序條件排序
- sql 統計多個欄位的和(如果欄位中含有 null 的處理)SQLNull
- PHP 多維陣列排序-按某個 key 的值PHP陣列排序
- ORACLE多欄位CASE WHENOracle
- LINQ系列:Linq to Object排序操作符Object排序
- MySQL - 一個欄位儲存多個ID時的查詢MySql
- mysql5.6生成排序欄位MySql排序
- mybatis自動填充多個表相同欄位的值MyBatis
- lucene 多欄位查詢-MultiFieldQueryParser
- php 對二維陣列的某個欄位公用排序的方法PHP陣列排序