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

10-08 00:56