繁体   English   中英

使用LINQ遍历对象树

[英]Traverse an object tree using LINQ

一个国家有一份州名单。 州有一个城市列表。 找到拥有邮政编码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所指出的,如果你想要检索一个状态(不是列表),请用FirstOrDefault替换Where

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

仅仅为了颜色,另一种方法:

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();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM