这可能很明显,但是我很难理解。

我有一个项目清单,例如:

BOB 5
Brian 5
Sam 6
James 7
Emily 8
Sandra 8
Michael 8


这些在List<MyObject>

我想过滤列表,以便通过选择第一个具有唯一ID的项目,每个ID仅包含一项。

我应该以

BOB 5
Sam 6
James 7
Emily 8


我在寻找一种干净的方法来执行此操作时遇到了麻烦。有任何想法吗?

最佳答案

使用GroupByFirst方法组合:

var results = source.GroupBy(x => x.Id).Select(g => g.First()).ToList();


或作为基于语法的查询:

var results = (from i in source
               group i by i.Id into g
               select g.First()).ToList();

09-25 18:26
查看更多