使用 LINQ 编译唯一对象列表
Compile a list of unique objects using LINQ
有伪代码
class Bar {int BarId;}
class Foo {
List<Bar> Bars;
}
使用 Linq,我应该如何 select foo 列表中所有可用的唯一栏?
List<Foo> foos = GetFoos(); // anything
List<Bar> allBars = foos.Select(f=>f.Bars)...?
您可以使用 SelectMany()
Linq 方法,如下所示:
List<Bar> allBars = foos.SelectMany(f => f.Bars).ToList();
如果您的列表中需要不同的 Bar 实例,请添加 Distinct()
,如下所示:
List<Bar> allBars = foos.SelectMany(f => f.Bars).Distinct().ToList();
If you want to return distinct elements from sequences of objects of
some custom data type, you have to implement the IEquatable generic
interface in the class.
有伪代码
class Bar {int BarId;}
class Foo {
List<Bar> Bars;
}
使用 Linq,我应该如何 select foo 列表中所有可用的唯一栏?
List<Foo> foos = GetFoos(); // anything
List<Bar> allBars = foos.Select(f=>f.Bars)...?
您可以使用 SelectMany()
Linq 方法,如下所示:
List<Bar> allBars = foos.SelectMany(f => f.Bars).ToList();
如果您的列表中需要不同的 Bar 实例,请添加 Distinct()
,如下所示:
List<Bar> allBars = foos.SelectMany(f => f.Bars).Distinct().ToList();
If you want to return distinct elements from sequences of objects of some custom data type, you have to implement the IEquatable generic interface in the class.