获取列表列表中的对象

时间:2010-09-02 19:55:26

标签: c# list generics

我正在编写一个C#应用程序,并且我在解析列表列表中的对象。 现在,我有类似的东西,

List<List<MyObj>> list;

我只是想获取MyObj列表。并且,看起来外部列表是通用的。 我如何获得内部列表(列表)?

感谢您的帮助。

5 个答案:

答案 0 :(得分:6)

如果您只想要内部List<MyObj>中的特定内容,请使用索引器

List<MyObj> local = list[0];

如果您希望将所有内部列表视为单个List<MyObj>并将内部列表组合在一起,则使用SelectMany

List<MyObj> local = list.SelectMany(x => x).ToList();

答案 1 :(得分:1)

列出内部=外部列表[indexOfListYouWant]

可以像访问该列表中的任何其他对象一样访问列表中的列表。

答案 2 :(得分:1)

您只需要迭代外部列表,如下所示:

foreach(List<MyObj> innerList in list)
{
    // do stuff to innerList
}

答案 3 :(得分:0)

你想要哪个“内部列表”?

 List<List<MyObj>> list;
 List<MyObj> MyObjList = list[0];

答案 4 :(得分:0)

要访问许多内部列表中的一个(此处,第一个):

List<MyObj> inner = list[0];

将这个“锯齿状”的二维列表转换为单个一维列表:

List<MyObj> oneList = list.Aggregate(new List<MyObj>(), (inner, result) => result.Concat(inner)).ToList();