[Linq].NET/C#程序开发中使用Linq如何将相同类型的多个List<T>集合合并成一个集合?

.NET 作者: Rector 593阅读 0评论 0收藏 收藏本文

郑重申明:本文未经许可,禁止任何形式转载

问题描述

比如现在有3个List<int>集合,如下:

//定义集合变量
List<List<T>> listOfList;
//初始化集合数据
listOfList = new {
        { 1, 2, 3}, // 第一个集合
        { 4, 5, 6}, // 第二个集合
        { 7, 8, 9}  // 第三个集合
        };

现在想要将listOfList中的三个集合合并成一个集合,如:

List<T> list = { 1, 2, 3, 4, 5, 6, 7, 8, 9};

这里的list的数据即为listOfList合并的结果。
.NET/C#程序开发中,使用Linq如何将相同类型的多个List<T>集合合并成一个集合,如上例?

方案一

使用LinqSelectMany()扩展方法,如:

list = listOfList.SelectMany(x => x).ToList();

方案二

使用LinqConcat()扩展方法,如:

var listOfList = new List<List<int>>() {
    new List<int>() { 1, 2 },
    new List<int>() { 3, 4 },
    new List<int>() { 5, 6 }
};
var list = new List<int> { 9, 9, 9 };
var result = list.Concat(listOfList.SelectMany(x => x));

foreach (var x in result) Console.WriteLine(x);

方案三

使用Linq查询表达式,如:

var items =
    from list in listOfList
    from item in list
    select item;

阅读了该文章的人还浏览了...

本文永久链接码友网 » [Linq].NET/C#程序开发中使用Linq如何将相同类型的多个List<T>集合合并成一个集合?

发布于: 2018-02-06 11:50:50
分享扩散: