使用C#中的LINQ从名称值列表中获取4个元素的组
我想循环遍历这个名称值对列表,并以4个为一组抓取它们。
数据如下:
value1 1 value2 1 value3 1 value4 1 value1 2 value2 2 value3 2 value4 2
它会将其分组为包含的1个列表
value1 1 value2 1 value3 1 value4 1
和另一个包含的列表
value1 2 value2 2 value3 2 value4 2
我知道这可以通过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);
框架中没有任何内容可以轻松完成此任务,但MoreLINQ具有Batch方法:
IEnumerable> groups = source.Batch(4); foreach (IEnumerable group in groups) { foreach (DataItem item in group) { ... } }
我想你正在寻找GroupBy 。