我有这个词,我想将它拆分成数组,并在 split 的每次迭代中取最后一个前一个字符。
string word = "HelloWorld!";
string[] mystringarray = word.Select(x => new string(x, 2)).ToArray();
Console.WriteLine(mystringarray);
输出结果:
[HH,ee,ll,oo,WW,oo,rr,ll,dd,!!]
预期结果:
[He,el,ll,lo,ow,wo,or,rl,ld]
我怎样才能做到这一点?
最佳答案
如果你想要一个 LINQ 解决方案,你可以使用 Zip
:
string[] mystringarray = word
.Zip(word.Skip(1), (a, b) => $"{a}{b}")
.ToArray();
这会将 word
中的每个字符与自身压缩在一起,使用 Skip
作为偏移量,并且仍然具有 O(n)
复杂度显式循环。
https://stackoverflow.com/questions/70594619/