天天看點

LINQ 按多個字段排序(orderby、thenby、Take)

LINQ 按多個字段排序(orderby、thenby、Take)

orderby  子句解析為 OrderBy()方法,orderby descending 子句解析為OrderBy Descending()方法:

OrderBy()升序  和 OrderByDescending() 降序 方法傳回 IOrderEnumerable。這個接口派生于接口

IEnumerable,但包含一個額外的方法CreateOrderedEnumerable- ()。

這個方法用于進一步給序列排序。

如果根據關鍵字選擇器來排序,兩項的順序相同,就可以使用 ThenBy()和 ThenByDescending  ()方法繼續排序。

這兩個方法需要 IOrderEnumerable才能工作,但也傳回這個接口。

是以,可以添加任意多個 ThenBy()和 ThenByDescending ()方法,對集合排序。

使用 LINQ  查詢時,隻需把所有用于排序的不同關鍵字(用逗号分隔開)添加到orderby  子句中。

這裡,所有的賽手先按照國家排序,再按照姓氏排序,最後按照名字排序。

添加到 LINQ 查詢結果中的Take()擴充方法用于提取前 10  個結果:

Lambda表達式 使用OrderBy()和 ThenBy()方法可以執行相同的操作:

繼續閱讀