如何拆分字符串并使其成为父元素

Ask*_*Ask -1 c# asp.net

我有以下字符串:

"Parent1:Child1"
"Parent1:Child2"
"Parent1:Child3"
"Parent1:Child4"

"Parent2:Child1"
"Parent2:Child2"
"Parent2:Child3"
"Parent2:Child4"

"Parent3:Child1"
"Parent3:Child2"
Run Code Online (Sandbox Code Playgroud)

现在我想创建如下字符串:

Parent1:Child1,Child2,Child3,Child4
Parent2:Child1,Child2,Child3,Child4
Parent3:Child1,Child2
Run Code Online (Sandbox Code Playgroud)

我尝试了很多方法,但没有一种方法可以正常工作.有帮助吗?

fub*_*ubo 8

Linq的方法

string[] input = { "Parent1:Child1", "Parent1:Child2", "Parent1:Child3", "Parent1:Child4",
                   "Parent2:Child1", "Parent2:Child2", "Parent2:Child3", "Parent2:Child4",
                   "Parent3:Child1", "Parent3:Child2"};
Run Code Online (Sandbox Code Playgroud)
  • 首先我是Split()每个项目:
  • 然后我GroupBy()分裂结果的第一部分(="ParentX")
  • 最后我concartenate各组密钥与:Join()所有孩子的的

码:

string[] result = input.Select(x => x.Split(':'))
                       .GroupBy(y => y.First())
                       .Select(y => y.Key + ":" + string.Join(",",y.Select(z => z.Last())))
                       .ToArray();
Run Code Online (Sandbox Code Playgroud)