r.Wins). select(r = > r); OrderBy() 和OrderByDescen"/>

LINQ 、Lambda按多个字段排序

2019-05-09 3页 doc 13KB 56阅读

用户头像

is_215732

暂无简介

举报
LINQ 、Lambda按多个字段排序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 (...
LINQ 、Lambda按多个字段排序
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 in racers) { 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); //属性名的第一个字母} }
/
本文档为【LINQ 、Lambda按多个字段排序】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索