首页 / .NET / 正文

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

6050 发布于: 2018-02-06 读完约需3分钟

问题描述

比如现在有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的查询结果转换成HashSet或者HashedSet?

下一篇: [Linq].NET/C#程序开发中如何使用Linq对集合List<T>进行分组(GroupBy)和统计(Count)?

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

分享扩散:

发表评论

登录用户才能发表评论, 请 登 录 或者 注册