一個國家有一個狀態列表。一個州有一個城市列表。找到郵政編碼爲11201的城市。使用LINQ遍歷對象樹
我該怎麼做?
當我做
Country.States.SelectMany(
s => s.Cities.Where(c => c.Zip ==11201)
)
.Select(s => s);
我得到的是城市而不是國家。
一個國家有一個狀態列表。一個州有一個城市列表。找到郵政編碼爲11201的城市。使用LINQ遍歷對象樹
我該怎麼做?
當我做
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));
正如指出本傑明Gruenbaum,如果你想獲取一個狀態(不是列表),由FirstOrDefault
Country.States.FirstOrDefault(s => s.Cities.Any(c => c.Zip == 11201));
+1只是注意到OP詢問「該」狀態,您應該替換Where with First –
僅供參考 - 您錯過了兩個示例中的右括號。 –
只是顏色替換Where
,另一種方法:
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();
我糾正了你的拼寫'國家';也許這就是導致這個問題的原因? – Brian
許多城市都有不止一個郵政編碼。這些如何反映在你的模型中?另外,海軍艦隻有郵政編碼,但沒有州;你關心? –