这可能是显而易见的,但我无法理解它.
我有一个项目列表,例如:
BOB 5
Brian 5
Sam 6
James 7
Emily 8
Sandra 8
Michael 8
Run Code Online (Sandbox Code Playgroud)
这些是在 List<MyObject>
我想过滤列表,因此每个ID只有1个项目,通过选择具有唯一ID的第一个项目.
我应该结束
BOB 5
Sam 6
James 7
Emily 8
Run Code Online (Sandbox Code Playgroud)
我在制定干净的方法时遇到了麻烦.有任何想法吗?
使用GroupBy和First方法相结合:
var results = source.GroupBy(x => x.Id).Select(g => g.First()).ToList();
Run Code Online (Sandbox Code Playgroud)
或者作为基于语法的查询:
var results = (from i in source
group i by i.Id into g
select g.First()).ToList();
Run Code Online (Sandbox Code Playgroud)