c# - LinqToSql - 从嵌套列表中获取不同 ID 的列表

标签 c# linq-to-sql

我在类中有一个属性,我需要迭代关系中所有可能的不同 ID。

我属于一个用户,该用户属于一家公司。公司有许多解决方案,每个解决方案都有许多“解决方案门户”。我想要的是数据库中“SolutionPortals”(SolutionPortal.PortalID) 中所有不同“PortalId”的列表。

我一生都无法将其作为一个列表。我不断得到:

var solutionIds = from s in this.Company.Solutions.Select(s=>s.SolutionPortals)
                  select s.Select(sp=> sp.PortalID);

当然这是有道理的,因为有一个解决方案列表和一个解决方案门户列表,但我需要将 IDS 选择到它们自己的列表中。

IEnumerable<IEnumerable<int>> // <-- Don't want this
IEnumerable<int> // <-- I want this

任何帮助将非常感激。

谢谢/

最佳答案

SelectMany是这里的关键:

var solutionIds = this.Company
                      .Solutions
                      .SelectMany(s=>s.SolutionPortals)
                      .Select(sp => sp.PortalId)
                      .Distinct();

关于c# - LinqToSql - 从嵌套列表中获取不同 ID 的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1094813/

相关文章:

c# - 创建自定义全尺寸日历控件

c# - 如何在 ObjectListView 中正确选择一行?

c# - 向 linqtosql dbml 中的表添加新列 - 无法删除所选类

c# - C# 中的 GC.Collect 和多线程

c# - Automapper 映射属性意外地通过部分属性名称匹配

c# - 如何使用asp.net从网页中抓取数据

c# - 使用LINQ to SQL读取存储过程

linq-to-sql - LINQ To SQL - 获取匹配 where 子句的最新记录

c# - LINQ 查询我可以在 where 条件下将对象类型属性与另一个对象匹配吗

c# - 使用 IEnumerable<T> 和 Linq-To-Sql 时如何防止内存溢出?