这可能很明显,但是我很难理解。
我有一个项目清单,例如:
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
我在寻找一种干净的方法来执行此操作时遇到了麻烦。有任何想法吗?
最佳答案
使用GroupBy
和First
方法组合:
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();