By 方法
包括下列方法:
DistinctBy: 根据指定的键选择器从集合返回不同元素的集合
ExceptBy: 根据指定的键选择器生成两个集合的集合差集
IntersectBy: 根据指定的键选择器函数生成两个集合的集合交集
UnionBy: 根据指定的键选择器生成两个集合的集合并集
MinBy: 根据指定的键选择器函数返回集合中的最小值
MaxBy: 根据指定的键选择器函数返回集合中的最大值
相对于不带 By 的方法,提供了一个键选择器 keySelector,允许对值的子集而不是整个值执行操作。
例如,取 Name 最长的 User:
var user = users.MaxBy(p => p.Name.Length);
Chunk
将集合按照提供的大小分为多个集合。也就是说,返回集合的集合。
例如,将用户按 10 人分组:
var chunks = users.Chunk(size: 10);
foreach (var chunk in chunks)
{
foreach(var user in chunk)
{
Console.WriteLine(user);
}
}
范围和索引支持
范围(..)和索引(^)用于访问集合中的单个元素或范围。
现在可以对 ElementAt 方法使用索引重载,对 Take 方法使用范围重载。
示例代码如下:
var lastUser = users.ElementAt(^1);//取最后一个 User
var users1To4 = users.Take(1..5);//取索引 1 到 4 的 User
OrDefault defaultValue 参数
FirstOrDefault, LastOrDefault 和 SingleOrDefault 方法当未找到集合元素时将返回 default(T)。但在某些场合是不合适的。比如需要始终返回一个 User 实例,避免空引用,这时可以传递 defaultValue 参数进行指定:
static readonly User EmptyUser = new User { Name = "" };
var user = users.FirstOrDefault(p=>p.Age>30, EmptyUser);
Console.WriteLine(user.Name);
© 版权声明
博主的文章没有高度、深度和广度,只是凑字数。利用读书、参考、引用、抄袭、复制和粘贴等多种方式打造成自己的纯镀 24k 文章!如若有侵权,请联系博主删除。
喜欢就点个赞吧