Gar*_*yer 3 c# linq list duplicates
我有一个对象列表,我需要从中删除一些重复项.如果它们具有相同的Id并且更喜欢booleanValue为false的那个,我们认为它们是重复的.这是我到目前为止所拥有的:
objects.GroupBy(x => x.Id).Select(x => x.Where(y => !y.booleanValue));
Run Code Online (Sandbox Code Playgroud)
我已经确定GroupBy没有进行这样的分组,所以我不知道其他任何功能是否正常工作.有什么想法吗?提前致谢.
你可以这样做:
var results =
from x in objects
group x by x.Id into g
select g.OrderBy(y => y.booleanValue).First();
Run Code Online (Sandbox Code Playgroud)
对于Id它找到的每一个objects,它将选择第一个元素booleanValue == false,或第一个元素(如果它们都没有booleanValue == false).
如果您更喜欢流利的语法:
var results = objects.GroupBy(x => x.Id)
.Select(g => g.OrderBy(y => y.booleanValue).First());
Run Code Online (Sandbox Code Playgroud)