2

一个国家有一个州列表。一个州有一个城市列表。查找具有邮政编码 11201 的城市的州。

我该怎么做呢?

当我做

Country.States.SelectMany(
                           s => s.Cities.Where(c => c.Zip ==11201)
                         )
                          .Select(s => s);

我得到的是城市而不是州。

4

2 回答 2

7
Country.States.Where(s => s.Cities.Any(c => c.Zip == 11201));

正如 Benjamin Gruenbaum 所指出的,如果您想检索一个状态(而不是列表),请替换WhereFirstOrDefault

Country.States.FirstOrDefault(s => s.Cities.Any(c => c.Zip == 11201));
于 2013-01-31T22:49:18.013 回答
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();
于 2013-01-31T23:03:29.947 回答