如何通过Linq合并列表? [英] How to combine Lists through Linq?

查看:46
本文介绍了如何通过Linq合并列表?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我知道如何在C#中将2个列表组合在一起,但是假设我有一个IEnumerable对象,每个对象都有一个列表.如何创建1个庞大的列表,将所有列表连接在一起.

I know how to combine 2 lists together in C#, but suppose I have an IEnumerable of objects, each with a list. How do I create 1 huge list, concatenating all of the lists.

我基本上想在Linq中执行以下操作(更优雅)

I basically want to do the following in Linq (more elegant)

//FakeObject has a list property 
IEnumerable<FakeObject> objects = ...;
List<int> hugeList = new List<int>();

foreach(FakeObject object in objects) 
{
   List<int> list = object.list;
   foreach(int i in list)
   {
      hugeList.Add(i)
   }
}

推荐答案

使用

Use SelectMany to flatten a collection of collections into one list:

var hugeList = objects.SelectMany(o => o.list);

或获取实际列表:

List<int> hugeList = objects.SelectMany(o => o.list).ToList();

这篇关于如何通过Linq合并列表?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆