我想用LINQ来实现这个目标:
拥有类似"abcdefghijk"
的字符串和“chunk size”3,
LINQ查询应该返回
{"abc", "def", "ghi", "jk" }
块大小为4:
{"abcd", "efgh", "ijk" }
我几乎可以肯定我必须使用TakeWhile或Zip,但我不知道如何使用它们!
答案 0 :(得分:4)
您可以使用MoreLinq
库中的Batch
方法:
var chunks = str.Batch(4).Select(x => new string(x.ToArray()).ToList();
这也可以使用GroupBy
完成,但代码看起来不那么漂亮:
var chunks = str
.Select((x,idx) => new { x, idx })
.GroupBy(c => c.idx / 4)
.Select(g => new string(g.Select(c => c.x).ToArray()))
.ToList();