有人知道我是如何从下面的查询中获得和IEnumerable的吗?
var neueLieferanten = Bestellpositionen.Where(x => x.SelectedArtikel is not null)
.Select(x => x.SelectedArtikel)
.Select(y => y.LieferantenArtikel.Select(x => x.Lieferant));
第一个类有一个名为SelectedArtikel的属性,它是另一个拥有LieferantentArtikel列表的类。这些物体中的每一个都有一个叫Lieferant的物体,我需要它。
根据您的描述:
var neueLieferanten = Bestellpositionen.Where(bp => bp.SelectedArtikel != null)
.SelectMany(bp => bp.SelectedArtikel.LieferantenArtikel)
.Select(la => la.Lieferant);
SelectMany在10个Bestellpositionen.SelectedArtikel
s内获取例如10个List<LieferantenArtikel>
,并将它们转换为单个LieferantenArtikel
列表,然后Select
从中提取Lieferant
属性
对于相同的结果,你可以用稍微不同的结构:
var neueLieferanten = Bestellpositionen.Where(bp => bp.SelectedArtikel != null)
.SelectMany(bp => bp.SelectedArtikel.LieferantenArtikel
.Select(la => la.Lieferant)
);
我用这种方式来概括,实际上,唯一的变化是括号的位置。。我们要么把一个列表列表变成一个列表,然后提取一个属性,要么从列表中的列表中提取一个特性,然后把它变成一个单独的列表;使用更能吸引你理解的方式(我更喜欢前者(