当前位置: 首页 > 编程笔记 >

如何使用LINQ C#展平列表?

鲁鹏
2023-03-14
本文向大家介绍如何使用LINQ C#展平列表?,包括了如何使用LINQ C#展平列表?的使用技巧和注意事项,需要的朋友参考一下

展平列表意味着将List <List <T >>转换为List <T>。例如,让我们考虑一个List <List <int >>,它需要转换为List <int>。

LINQ中的SelectMany用于将序列的每个元素投影到IEnumerable <T>,然后将所得序列展平为一个序列。这意味着SelectMany运算符将从一系列结果中合并记录,然后将其转换为一个结果。

使用SelectMany

示例

using System;
using System.Collections.Generic;
using System.Linq;
namespace DemoApplication{
   public class Program{
      static void Main(string[] args){
         List<List<int>> listOfNumLists = new List<List<int>>{
            new List<int>{
               1, 2
            },
            new List<int>{
               3, 4
            }
         };
         var numList = listOfNumLists.SelectMany(i => i);
         Console.WriteLine("列表中的数字:");
         foreach(var num in numList){
            Console.WriteLine(num);
         }
         Console.ReadLine();
      }
   }
}

输出结果

列表中的数字:
1
2
3
4

使用查询

示例

using System;
using System.Collections.Generic;
using System.Linq;
namespace DemoApplication{
   public class Program{
      static void Main(string[] args){
         List<List<int>> listOfNumLists = new List<List<int>>{
            new List<int>{
               1, 2
            },
            new List<int>{
               3, 4
            }
         };
         var numList = from listOfNumList in listOfNumLists
         from value in listOfNumList
         select value;
         Console.WriteLine("列表中的数字:");
         foreach(var num in numList){
            Console.WriteLine(num);
         }
         Console.ReadLine();
      }
   }
}

输出结果

列表中的数字:
1
2
3
4
 类似资料:
  • 问题内容: 给定以下元组列表: 我如何将其拼凑成列表? 有没有一线做上面的事情? 问题答案: 您可以使用列表推导: 在以下情况下也经常使用: 但是,这并不是完全一样的。

  • 我想把这个val: 对它进行一些操作(我正在考虑展平) 然后得到这个结果 如果展平方法在这里不合适,那很好。只要我得到结果。 谢啦!

  • 我有内部节点和终端节点的树状结构: 我现在有一个

  • 问题内容: 我有一个列表看起来像这样: 我想把它弄平 有没有使用numpy的轻量级功能来执行此操作? 问题答案: 如果没有numpy(),一种使用方式 是: 或者作为另一种Python方式,您可以使用 列表理解 : 另一个非常适合短列表的功能方法也可以在Python2和Python3中使用(不要将其用于长列表): 为了使其更快一点,您可以使用内置,而不是: 基准: 使用@Will答案的基准测试(对

  • 如何使用PDFBox“展平”PDF表单(删除表单字段,但保留字段文本)? 这里回答了同样的问题: 一个快速的方法是从acrofrom中删除字段。 为此,您只需要获取文档曲库,然后是acroform,然后从该acroform中删除所有字段。 图形表示与注释链接并保留在文档中。 所以我写了这段代码:

  • 问题内容: 看来我有NumPy数组列表()格式的数据: 我正在尝试将其放入polyfit函数中: 但是,它返回错误: 我认为我需要将数据拼合为: 我已经尝试了通常在列表列表上都可以使用的列表理解,但是按预期的方法却没有效果: 最好的方法是什么? 问题答案: 可以使用,顾名思义,它基本上将这样一个输入列表的所有元素连接到单个NumPy数组中,如下所示- 如果您希望最终输出为列表,则可以扩展解决方案,