gpt4 book ai didi

c# - LINQ 查询 - 如何使用 Select 将结果集映射到另一个对象

转载 作者:太空狗 更新时间:2023-10-29 22:04:16 25 4
gpt4 key购买 nike

我有一个对象层次结构排列为大陆 > 国家 > 城市。能够选择特定“国家/地区”中的所有城市,如下所示。我正在寻找的是一种合并这两个查询并在单个查询中到达 cityList 的方法。

var cities = network.Continents
.SelectMany(continent => continent.Countries)
.Where(ctry => ctry.Id == "country")
.SelectMany(ctry => ctry.Cities);

List<City> cityList = (from c in cities
select new City { Id = c.Id, Name = c.Name }).ToList<City>();

“c in cities”与 cityList 中的结构不同,因此第二个查询中的映射也不同。

最佳答案

只需在查询中使用点符号:

var cities = network.Continents
.SelectMany(continent => continent.Countries)
.Where(ctry => ctry.Id == "country")
.SelectMany(ctry => ctry.Cities)
.Select(cty=> new City{Id = cty.Id, Name = cty.Name }).ToList<City>();

我认为它是可读的,并且没有额外的开销;通常,生成的 SQL 查询类似于您自己编写的查询,因此它的可读性是它的优势。

关于c# - LINQ 查询 - 如何使用 Select 将结果集映射到另一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6261193/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com