我在一个类中有一个属性,我需要遍历关系中所有可能的不同ID。
我属于公司的用户。公司有很多解决方案,每个解决方案都有很多“SolutionPortals”。我想要的是来自DB中“SolutionPortals”(SolutionPortal.PortalID)的所有不同“PortalIds”的列表。
我不能为我的生活得到这个单一的清单。我一直在说:
var solutionIds = from s in this.Company.Solutions.Select(s=>s.SolutionPortals)
select s.Select(sp=> sp.PortalID);
当然这是有道理的,因为有一个解决方案列表,带有SolutionPortals列表,但我需要将IDS选择到他们自己的列表中。
IEnumerable<IEnumerable<int>> // <-- Don't want this
IEnumerable<int> // <-- I want this
任何帮助都会非常感激。
感谢/
答案 0 :(得分:3)
SelectMany
是关键所在:
var solutionIds = this.Company
.Solutions
.SelectMany(s=>s.SolutionPortals)
.Select(sp => sp.PortalId)
.Distinct();
答案 1 :(得分:2)
你可能需要这样的东西:
var listOfIds = listOfSolutionPortals.SelectMany(sps => sps.Solutions)
.Select(sp => sp.PortalId);
答案 2 :(得分:1)
这有效:
var solutionIds = (from s in this.Company.Solutions
.SelectMany(s => s.SolutionPortals)
select s.PortalID).Distinct();
谢谢Mehrdad!