C# 如果项包含字符串的一部分,如何连接字符串列表

C# 如果项包含字符串的一部分,如何连接字符串列表,c#,string,list,C#,String,List,我有一个列表,如下所示: List<string> source = new List<string>() { "Test;12345", "Test;6789", "Test;101112", "Demo;1", "Demo;2", }; 关于,根据您对我评论的回答 预期结果将是字符串列表:Demo;1及 试验;12345;6789;101112 您正在寻找LinqGroupBy using System.Linq; ... List&l

我有一个
列表
,如下所示:

List<string> source = new List<string>() {
  "Test;12345",
  "Test;6789",
  "Test;101112",

  "Demo;1", 
  "Demo;2", 
};

关于,

根据您对我评论的回答

预期结果将是字符串列表:Demo;1及 试验;12345;6789;101112

您正在寻找Linq
GroupBy

using System.Linq;

...

List<string> source = new List<string>() {
  "Test;12345",
  "Test;6789",
  "Test;101112",

  "Demo;1", 
  "Demo;2", 
};

List<string> result = source
  .Select(line => line.Split(new char[] {';'}, 2))
  .GroupBy(line => line[0], line => line[1])
  .Select(group => $"{group.Key};{string.Join(";", group)}") 
  .ToList();
结果:

Test;12345;6789;101112
Demo;1;2

您可以尝试以下代码

var result = source.ToLookup(x => x.Split(";")[0], x=>x.Split(";")[1]).Select(x => string.Concat(x.Key,";",string.Join(";",x))).ToList();

尝试-->var result=string.Join(“:”,数组);请解释一下。单词“Test”应该只在结果字符串的开头出现一次。因此,您需要从输入中删除以下“测试”字?如果我们将
“Demo;1”
项添加到
列表中,预期结果是什么?@DmitryBychenko预期结果将是字符串列表:Demo;1.试验和测试;12345;6789;101112@Steve我需要的是,当我有许多包含同一个单词的项目时,我想删除重复的单词并将其余的字符串合并。这正是我需要的,它对我有用,非常感谢
Test;12345;6789;101112
Demo;1;2
var result = source.ToLookup(x => x.Split(";")[0], x=>x.Split(";")[1]).Select(x => string.Concat(x.Key,";",string.Join(";",x))).ToList();