LINQ查询有3个级别

Ian*_*ink 5 linq

我有一个像这样的业务对象:

国家有州,州有城市

Country[2].States[7].Cities[5].Name就是New York

好的,我需要获得至少有1个的所有Country对象的列表 City.IsNice == true

我怎么做到的?

Tho*_*que 3

var selectedCountries =
    countries.Where(
        co => co.States.Any(
            s => s.Cities.Any(
                ci => ci.IsNice)));
Run Code Online (Sandbox Code Playgroud)

另外一个选择 :

var selectedCountries =
    countries.Where(
        co => co.States.SelectMany(s => s.Cities).Any(
            ci => ci.IsNice));
Run Code Online (Sandbox Code Playgroud)