问题描述
比如现在有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>集合合并成一个集合,如上例?
方案一
使用Linq
的SelectMany()
扩展方法,如:
list = listOfList.SelectMany(x => x).ToList();
方案二
使用Linq
的Concat()
扩展方法,如:
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;
版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。
发表评论
登录用户才能发表评论, 请 登 录 或者 注册