C# 过滤列表数据C

C# 过滤列表数据C,c#,string,linq,list,duplicates,C#,String,Linq,List,Duplicates,如何转换字符串列表: List<string> appliedFilters = filterString.Split(',').Select(n => n).ToList(); 我需要输出此列表,但在字符串的第一部分不重复,例如: 7-27-28, 2-37, 9-18-22-80 我确信这里的某个地方有一个LINQ查询,但无法找到它。您可以省略Selectn=>您可以省略Selectn=>我认为这是优雅与可读性的问题。就我个人而言,很难理解林克发生了什么。无论如何,请投

如何转换字符串列表:

List<string> appliedFilters = filterString.Split(',').Select(n => n).ToList();
我需要输出此列表,但在字符串的第一部分不重复,例如:

7-27-28, 2-37, 9-18-22-80

我确信这里的某个地方有一个LINQ查询,但无法找到它。

您可以省略Selectn=>您可以省略Selectn=>我认为这是优雅与可读性的问题。就我个人而言,很难理解林克发生了什么。无论如何,请投票支持提出一个解决方案,经过仔细检查,这个解决方案看起来会奏效。这正是我所需要的&一个令人印象深刻的LINQ问题:谢谢you@HenkHoltermanIEnumerable重载仅在.NET4.0及更高版本中出现。我认为这是优雅与可读性的问题。就我个人而言,很难理解林克发生了什么。无论如何,请投票支持提出一个解决方案,经过仔细检查,这个解决方案看起来会奏效。这正是我所需要的&一个令人印象深刻的LINQ问题:谢谢you@HenkHoltermanIEnumerable重载仅适用于.net 4.0及更高版本
filterString.Split(',')
  .Select(s => s.Split('-'))
  .GroupBy(ss => ss[0])
  .Select(group => string.Join("-", new[]{group.Key}.Concat(group.Select(ss => ss[1])).ToArray()));
filterString.Split(',')
  .Select(s => s.Split('-'))
  .GroupBy(ss => ss[0])
  .Select(group => string.Join("-", new[]{group.Key}.Concat(group.Select(ss => ss[1])).ToArray()));