我有一个对象列表,其中每个对象都有一个“名称”和其他不同的东西。我想过滤掉那个列表中没有唯一名称的对象。
是否有一个LINQ语句,我可以“联合()”所有结果组,只返回我的对象的IEnumerable?
像
IEnumerable<MyObject> Results = (from x in Objects
group x by x.Name into g
where g.Count() > 1
select g)
.COMBINE_OR_WHATEVER();
谢谢!
答案 0 :(得分:9)
是的,有。您可以使用SelectMany
。
IEnumerable<MyObject> Results = (from x in Objects
group x by x.Name into g
where g.Count() > 1
select g)
.SelectMany(x => x);
答案 1 :(得分:1)
我认为您只想要具有唯一名称的对象(“我想过滤掉那些没有该列表中唯一名称的对象“):
var result = Objects.GroupBy(o => o.Name)
.Where(grp => grp.Count() == 1)
.SelectMany(grp => grp);