Ros*_*rta 8 .net c# linq arrays linq-to-objects
我有一个像这样的单维集合:
[1,2,4,5.....n]
Run Code Online (Sandbox Code Playgroud)
我想在这样的二维集合中转换该集合:
[[1,2,3],
[4,5,6],
...]
Run Code Online (Sandbox Code Playgroud)
基本上我想分组或拆分,如果你想要的话,数组是'n'成员
我可以用一个foreach语句来做,但我目前正在学习LINQ,所以不是迭代遍历所有元素并手动创建一个新数组我想使用LINQ功能(如果适用)
有没有LINQ函数来帮助我完成这个?
我在思考,GroupBy或者SelectMany我不知道他们是否会帮助我,但他们可能会
任何帮助将真正欣赏它=):**
das*_*ght 14
您可以按索引分组除以批量大小,如下所示:
var batchSize = 3;
var batched = orig
.Select((Value, Index) => new {Value, Index})
.GroupBy(p => p.Index/batchSize)
.Select(g => g.Select(p => p.Value).ToList());
Run Code Online (Sandbox Code Playgroud)
使用MoreLinq .Batch
var result = inputArray.Batch(n); // n -> batch size
Run Code Online (Sandbox Code Playgroud)
例
var inputs = Enumerable.Range(1,10);
var output = inputs.Batch(3);
var outputAsArray = inputs.Batch(3).Select(x=>x.ToArray()).ToArray(); //If require as array
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5811 次 |
| 最近记录: |