一个国家/地区有一份州名单。州有一个城市列表。找到一个城市的邮政编码为11201的州。
我该怎么做?
当我这样做时
Country.States.SelectMany(
s => s.Cities.Where(c => c.Zip ==11201)
)
.Select(s => s);
我得到的是城市,而不是国家。
答案 0 :(得分:7)
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));
答案 1 :(得分:6)
仅仅为了颜色,另一种方法:
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();