Chopping string with LINQ
本文关键字:LINQ with string Chopping | 更新日期: 2023-09-27 18:20:42
我想使用LINQ来实现这一点:
具有类似"abcdefghijk"
的字符串和3的"块大小",
-
LINQ查询应返回
{"abc", "def", "ghi", "jk" }
-
块大小为4:
{"abcd", "efgh", "ijk" }
我几乎可以肯定我必须使用TakeWhile或Zip,但我不知道如何使用它们!
您可以使用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();