C#LINQ GroupBy将List转换为具有一个属性作为值列表的组

hey*_*Now 1 c# linq lambda igrouping linq-group

我有一个对象列表 list1

Name Value
N1   V100 
N2   V101
N1   V102
N4   V103
N4   V104
Run Code Online (Sandbox Code Playgroud)

我想将其转换为分组列表

Name Values
N1   V100, V102 
N2   V101
N4   V103, V104
Run Code Online (Sandbox Code Playgroud)

当我使用时,GroupBy我得到了整个东西,( list1.GroupBy(key => key.Name) )

Name Values
N1
  N1   V100
  N1   V102
N2
  N2   V101
N4
  N4   V103
  N4   V104
Run Code Online (Sandbox Code Playgroud)

我只想将值作为List.

Ous*_* D. 6

之后GroupBy,使用ToDictionary:

source.GroupBy(x => x.Name)
      .ToDictionary(x => x.Key, x => x.Select(e => e.Value).ToList());
Run Code Online (Sandbox Code Playgroud)

这产生了Dictionary<string, List<string>>键是名称的位置,值是由将每个元素投影到string该特定组下的组成的列表.

我认为Value只是一个string例子,但实际上,解决方案保持不变并不重要.