使用Linq进行字符串操作

时间:2018-12-22 11:54:20

标签: c# arrays string linq

我正在尝试使用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:我正在寻找简单的解决方案,而不是一堆代码

小提琴链接:https://dotnetfiddle.net/ml8bOC

1 个答案:

答案 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@@"]