C#Lambda - 获取不同的Id并附加其他字段值

Jos*_*ose 2 c# linq lambda

我有一个ID和标题列表,如下所示:

    List<Event> events= new List<Event>();

    events.Add(new Event(){ Id= "1001", Title= "abc" });
    events.Add(new Event(){ Id= "1002", Title= "xyz" });
    events.Add(new Event(){ Id= "1001", Title= "hij" });
    events.Add(new Event(){ Id= "1002", Title= "opq" });
    events.Add(new Event(){ Id= "1003", Title= "efg" });
Run Code Online (Sandbox Code Playgroud)

在这里,我希望得到不同的ID逗号分隔的标题与那些使用的IDC# lambda expression

预期结果:

[
    {Id: 1001,Title : "abc,hij"},
    {Id: 1002,Title : "xyz,opq"},
    {Id: 1003,Title : "efg"},
]
Run Code Online (Sandbox Code Playgroud)

你能告诉我怎样才能实现这个目标C# Lambda expression.提前致谢

Tim*_*ter 7

你可以用GroupBy+String.Join

var query = events.GroupBy(x => x.Id)
    .Select(g => new Event 
     { 
         Id = g.Key, 
         Title = String.Join(",", g.Select(x => x.Title)) 
     });
Run Code Online (Sandbox Code Playgroud)

如果你想要一个新的列表追加.ToList().