C# LINQ - Union() the Group()-results

本文关键字:Group -results the LINQ Union | 更新日期: 2023-09-27 18:31:26

我有一个对象列表,其中每个对象都有一个"名称"和不同的其他东西。我想过滤掉那些在该列表中没有唯一名称的对象。

是否有一个 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();

谢谢!

C# LINQ - Union() the Group()-results

是的,有。您可以使用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);