一个国家有一个州列表。一个州有一个城市列表。查找具有邮政编码 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();