从嵌套列表中获取值时使用 Linq

Using Linq when getting value from nested list

我需要将变量的值设置为嵌套在多个列表中的 属性 的值。每个列表只有一个项目,除了一个列表。我正在尝试这样做:

var myValue = myListA[0].myListB[0].myListC[0].
              myListD.Where(x => x.Name == "Misc Expenses").myListE[0].price;

这会产生编译时错误,指出 myListD 不包含 myListE 的定义。正确的语法是什么?

在 .Where 子句之后,您需要 .First()(或 .ToList())才能应用 Where 子句:

var myValue = myListA[0].myListB[0].myListC[0].
              myListD.Where(x => x.Name == "Misc Expenses").First().myListE[0].price;

不过,从技术上讲,您也可以直接将 .Where 替换为 .First:

var myValue = myListA[0].myListB[0].myListC[0].
              myListD.First(x => x.Name == "Misc Expenses").myListE[0].price;