一个国家有一个州列表。一个州有一个城市列表。查找具有邮政编码 11201 的城市的州。
我该怎么做呢?
当我做
Country.States.SelectMany(
                           s => s.Cities.Where(c => c.Zip ==11201)
                         )
                          .Select(s => s);
我得到的是城市而不是州。
Country.States.Where(s => s.Cities.Any(c => c.Zip == 11201));
正如 Benjamin Gruenbaum 所指出的,如果您想检索一个状态(而不是列表),请替换Where为FirstOrDefault
Country.States.FirstOrDefault(s => s.Cities.Any(c => c.Zip == 11201));
只是为了颜色,另一种方法:
var foo = 
    from state in Country.States
    from city in state.Cities
    where city.Zip == 11201  // Hey, that's my zip code!
    select state;
var justTheOne = foo.FirstOrDefault();