我有一个对象列表,其中每个对象都有一个"名称"和不同的其他东西。我想过滤掉那些在该列表中没有唯一名称的对象。
是否有一个 LINQ 语句,我可以在其中"Union()"所有生成的组并只返回我的对象的 IEnumerable?
喜欢
IEnumerable<MyObject> Results = (from x in Objects
group x by x.Name into g
where g.Count() > 1
select g)
.COMBINE_OR_WHATEVER();
谢谢!
是的,有。您可以使用SelectMany
.
IEnumerable<MyObject> Results = (from x in Objects
group x by x.Name into g
where g.Count() > 1
select g)
.SelectMany(x => x);
我认为您只需要具有唯一名称的对象("我想过滤掉该列表中没有唯一名称的对象"):
var result = Objects.GroupBy(o => o.Name)
.Where(grp => grp.Count() == 1)
.SelectMany(grp => grp);