Home > database >  Using Linq when getting value from nested list
Using Linq when getting value from nested list

Time:04-26

I need to set a variable's value to the value of a property that is nested in several Lists. Each list only has one item except for one list. I'm trying to do this:

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

This produces a compile time error that says myListD does not contain a definition for myListE. What is the correct syntax?

CodePudding user response:

After the .Where clause, you need to to .First() (or .ToList()) in order to apply the Where clause:

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

Technically, though, you can replace that .Where with .First directly, too:

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