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#排序
- PHP 二維陣列, 按某一個欄位排序PHP陣列排序
- PHP陣列多個欄位分別排序PHP陣列排序
- SQL字元型欄位按數字型欄位排序實現方法SQL字元排序
- Spring MVC @SortDefault多欄位排序SpringMVC排序
- vxe-table grid 使用服務端排序、多欄位排序服務端排序
- 快排實現仿order by多欄位排序排序
- 將多個JSON欄位對映到單個Java欄位JSONJava
- 逆向工程通過某個欄位排序排序
- 請教一下 多欄位值如何排序?排序
- Java stream sorted使用 Comparator 進行多欄位排序Java排序
- mysql sql同一個欄位多個行轉成一個欄位查詢MySql
- ElasticSearch多欄位權重排序居然可以這麼玩Elasticsearch排序
- Linq查詢之多個排序條件排序
- 二維陣列根據某個欄位排序陣列排序
- 哇,ElasticSearch多欄位權重排序居然可以這麼玩Elasticsearch排序
- 記錄一下mysql多欄位排序遇到的一個好玩的現象MySql排序
- LINQ 動態排序排序
- mySql刪除多個表 刪除多個欄位的SQLMySql
- 查詢/刪除重複的資料(單個欄位和多個欄位條件)
- 多欄位登入
- PHP 多維陣列排序-按某個 key 的值PHP陣列排序
- sql 統計多個欄位的和(如果欄位中含有 null 的處理)SQLNull
- DB 合併多個欄位的模糊檢索
- milvus 支援一個集合建立多個向量欄位嗎?
- mysql5.6生成排序欄位MySql排序
- mybatis自動填充多個表相同欄位的值MyBatis
- 欄位按照指定 ID 順序進行排序排序
- 序列化,資料庫存多個欄位資料資料庫
- sql根據多個欄位查詢重複記錄SQL
- [Elasticsearch] 多欄位搜尋 (二) - 最佳欄位查詢及其調優(轉)Elasticsearch
- Elasticsearch 單字串多欄位查詢Elasticsearch字串
- 二維陣列根據欄位進行排序陣列排序
- 大資料MongoDB之mgo驅動如何對查詢結果進行排序(正序逆序多欄位排序)?大資料MongoDB排序
- postgresql中檢視建立,欄位拼接,同一個表的多行之間的多個欄位相減SQL
- 同一欄位多個查詢條件時遇到的一個問題
- 多維陣列按鍵名進行重新排序陣列排序
- 使用正規表示式對數字字串欄位排序字串排序
- SpringJpa @query 中根據傳入引數(欄位)排序Spring排序