使用LINQ
[[a,b]将 [a,b,c,d] 转换为连续元素对数组的最简单方法是什么? ,[c,d]] ?它有可能吗?
x = [a,b,c,d]→y = [[a,b],[c,d]]
P.S。如果不是LINQ,那么如何以最简单有效的方式完成?
答案 0 :(得分:4)
是的,有可能,:
var result = yourCollection
.Select((x,idx) => new { x, idx })
.GroupBy(g => g.idx / 2)
.Select(g => g.Select(p => p.x).ToArray())
.ToArray();
由于没有直接执行此操作的内置方法,因此代码看起来很混乱。如果您可以使用MoreLINQ
库中的Batch
方法,那会更好。然后您可以使用:
var result = yourCollection.Batch(2).Select(x => x.ToArray()).ToArray();