我想循环遍历这个名称值对列表,并以4组为单位抓取它们.
数据如下:
value1 1
value2 1
value3 1
value4 1
value1 2
value2 2
value3 2
value4 2
Run Code Online (Sandbox Code Playgroud)
它会将其分组为包含的1个列表
value1 1
value2 1
value3 1
value4 1
Run Code Online (Sandbox Code Playgroud)
和另一个包含的列表
value1 2
value2 2
value3 2
value4 2
Run Code Online (Sandbox Code Playgroud)
我知道这可以通过for循环轻松完成,但我想知道是否有一个很好的方法来使用LINQ.
这将按每4项(a,b,c,d),(e,f,g,h),(i,j)分组
var abc = new string[] { "a", "b", "c", "d", "e", "f", "g", "h", "i", "j" };
var xyz = abc.Select((e, i) => new { Item = e, Grouping = (i / 4) }).GroupBy(e => e.Grouping);
Run Code Online (Sandbox Code Playgroud)
框架中没有任何内容可以轻松完成此任务,但MoreLINQ具有Batch方法:
IEnumerable<IEnumerable<DataItem>> groups = source.Batch(4);
foreach (IEnumerable<DataItem> group in groups)
{
foreach (DataItem item in group)
{
...
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1980 次 |
| 最近记录: |