我正在尝试使用linq将FOO BAR BAZ
转换为"GPCSC[", "N@@"
。
我到这很近了
var res2 = new String("FOO BAR BAZ ".ToList().Select((x, i) => x = (i % 2 == 0 ? ++x : --x )).ToArray());
输出
GNPC @ SC @ [
我需要将此字符串分成两部分,以使输出为
`"GPCSC[", "N@@"`
我还不能解决它。
对此有任何解决方案建议吗?
PS:我正在寻找简单的解决方案,而不是一堆代码
答案 0 :(得分:2)
您可能需要使用GroupBy
:
string str = "GNPC@SC@[";
var groups = str.Select((v, i) => new { Group = i % 3, Ch = v })
.GroupBy(item => item.Group == 1)
.Select(group => string.Join("", group.Select(item => item.Ch)))
.ToList();
// groups: ["GPCSC[", "N@@"]