建议收藏
文章目录
- .NET6 LINQ最新新增语法 非常常用
- 前言
- 1、Chunk
- 2、TryGetNonEnumeratedCount()
- 1.The Old Way
- 2.The New Best Way
- 3、Zip
- 4、MinBy、MaxBy
- 5、Take的条件标志
- 1、取数组的3-4 T a k e ( 2..4 ) Take(2..4) Take(2..4)
- 2、取数组的最后三个 Take(^3..)
前言
新增了一些新的LINQ常用语法,方法,以及两个特殊标志 “…” 和 “^”
1、Chunk
将数组按照条件进行分组。
比如 有一组名字,两两分组
var names = new [] {"Tom","Jack","Kate","Lily","Aaron","Eric"};
var chunked = names.Chunk(3);
// 1、 new [] {"Tom","Jack","Kate"}
// 2、 new [] {"Lily","Aaron","Eric"}
2、TryGetNonEnumeratedCount()
1.The Old Way
var names = new [] {"Tom","Jack","Kate"};
var other_names = new [] {"Lily","Aaron","Eric"};
var concated = names.Concat(other_names);
//这样做会有什么不好的地方。(IO? Cpu?)
Console.WriteLine(concated.Count())
2.The New Best Way
代码如下(示例):
var names = new [] {"Tom","Jack","Kate"};
var other_names = new [] {"Lily","Aaron","Eric"};
var concated = names.Concat(other_names);
Console.WriteLine(concated.TryGetNonEnumeratedCount(out var count))
3、Zip
将两个数组进行整合成为一个 ValueTuple
var names = new [] {“Nick”,”Lily”};
var age = new [] {18,20};
var zip = names.zip(age);
// Zip => ValueTuple(“Nick”,18),ValueTuple(“Lily”,20)
var year = new [] {2018,2020}
var zip_two = names.zip(age,year);
4、MinBy、MaxBy
5、Take的条件标志
1、取数组的3-4
T
a
k
e
(
2..4
)
Take(2..4)
Take(2..4)
2、取数组的最后三个 Take(^3…)


