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が指摘しているように、(リストではなく)1つの状態を取得する場合は、次のように置き換えます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 に答える