c# - LINQ - 获取列表中列表中的所有项目?

标签 c# .net linq list

我目前正在学习 LINQ 的学习曲线,我真的需要一些帮助。我不知道我想要的是否可能,但如果我必须打赌,我敢打赌。

我目前有一个名为 _tables 的对象列表,其中每个对象都有另一个通过属性“Indexes”公开的对象列表。本质上,我希望最终得到一个列表,其中包含所有 _tables 中的所有索引。

这是我目前所拥有的:

var indexes = from TableInfo tab
              in _tables
              where tab.Indexes.Count > 0
              select tab.Indexes;

不幸的是,这似乎给了我另一个列表列表,但只有在索引列表包含多个值的情况下...是否有某种方法可以在没有循环的情况下将所有这些列表放在一起?

最佳答案

您想使用SelectMany 扩展方法。

_tables.SelectMany(t => t.Indexes)

关于c# - LINQ - 获取列表中列表中的所有项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3267079/

相关文章:

c# - Const 与 protected 静态只读

c# - 使用 LINQ 做我需要做的事情的更好方法?

c# - 无法使用 LINQ Where 将 MySQL 日期/时间值转换为 System.DateTime?

c# - C# 和 .NET Framework 在哪里/何时不能成为正确的工具?

c# - OOD 和主客体混淆

c# - C# 中的 Lambda 表达式分组依据

linq - 构建动态 linq 到 Sql lambda 表达式

c# - 我在哪里可以获得适用于 Windows 64 位的 memcached

c# - 在 DNX Core 5.0 中如何确定属性是否为通用类型?

c# - 应使用哪种野田时间类型来计算特定日期与今天之间的年/月/日?