如何使用 LINQ select 子集合中的所有项目

How to select all items from subcollections using LINQ

你能帮我 select 集合和子集合中的所有 int 项目吗?

我有对象

IEnumerable<IEnumerable<IEnumerable<int>>> 

我需要select 所有整数 一个 List<int>int[]

谢谢

你必须展平两次(在SelectMany的帮助下):

IEnumerable<IEnumerable<IEnumerable<int>>> source = ...

IEnumerable<int> result = source // IEnumerable<IEnumerable<IEnumerable<int>>>
  .SelectMany(outer => outer)    // IEnumerable<IEnumerable<int>>
  .SelectMany(inner => inner);   // IEnumerable<int>

最后,添加 .ToArray().ToList() 以便 实现 IEnumerable<int>int[]List<int> :

int[] array = source 
  .SelectMany(outer => outer) 
  .SelectMany(inner => inner)
  .ToArray();