我对Linq很新,我开始尝试过滤列表和IEnumerable内容而不使用foreach循环。在这种情况下,如果符合给定条件,我想要检索嵌套属性。
这是我到目前为止所做的:
IEnumerable<GroupTourData> test =
web_service_item.TourInstances
.Where(x => x.Availability.Where(a => a.Price > 0 && a.Grade == string.Empty)
.Count() > 0);
我想在这里实现的是匹配条件中所有价格的IEnumerable列表。我可以通过将.SelectMany(a.Price)添加到此语句的末尾来获得,但这似乎在Visual Studio中出错。
非常感谢任何帮助或指示。
答案 0 :(得分:2)
如果您只想要price
?那你只是让你的SelectMany
处于错误的位置:
web_service_item
.TourInstances
.SelectMany(ti => ti.Availability)
.Where(a => a.Price > 0 && a.Grade == string.Empty)
.Select(a => a.Price);
答案 1 :(得分:1)
根据您的数据架构和表格...您是否尝试过使用Include
包含子实体?
IEnumerable<GroupTourData> test = web_service_item
.TourInstances
.Include("Availability")
.Where(x => x
.Availability
.Any(a => a.Price > 0 && a.Grade == string.Empty)
);