如何解决通过linq从列表的第三级获取项目
有人知道我如何获得IEnumerable并通过以下查询吗?
function test(obj) {
const output = { ...obj };
output.age = 30;
return output;
}
let person = { age: 10 }
let newPerson = test(person);
console.log(newPerson.age,person.age); // output is 30 10
第一类具有一个名为SelectedArtikel的属性,这是另一个包含LieferantenArtikel列表的类。每个对象都有一个我需要的名为Lieferant的对象。
解决方法
根据您的描述:
var neueLieferanten = Bestellpositionen.Where(bp => bp.SelectedArtikel != null)
.SelectMany(bp => bp.SelectedArtikel.LieferantenArtikel)
.Select(la => la.Lieferant);
SelectMany需要例如在10个List<LieferantenArtikel>
中的10个Bestellpositionen.SelectedArtikel
,并将它们转换为一个LieferantenArtikel
列表,然后Select
从中提取Lieferant
属性
对于相同的结果,您可以将其结构略有不同:
var neueLieferanten = Bestellpositionen.Where(bp => bp.SelectedArtikel != null)
.SelectMany(bp => bp.SelectedArtikel.LieferantenArtikel
.Select(la => la.Lieferant)
);
我以这种方式展示了它的轮廓,实际上,唯一的变化是括号的位置。.我们正在将列表列表变成单个列表,然后提取属性,或者提取属性从列表中的列表中,然后将其变成单个列表;使用无论哪种方式都更能吸引您的理解(我更喜欢前者)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。