在模型中获取嵌套列表

时间:2012-10-14 16:36:55

标签: c#

我有两个对象模型,如下所示:

public class MyObject
{
   public List<SomeOtherObject> TheListOfSomeOtherObjects { get; set; }
}

public class SomeOtherObject
{
   long SomeOtherObjectID { get; set; }
}

我有一个名为MyObjects的{​​{1}}列表,我要从中提取列表ListOfMyObjects内的所有SomeOtherObjectID

我想写这样的东西:

TheListOfSomeOtherObjects

由于语法原因,它无法正常工作。如何获取嵌套列表的列表?

感谢您的建议。

3 个答案:

答案 0 :(得分:1)

您正在尝试展平嵌套列表:

var allChildren = myObjects.SelectMany(o => o.ChildObjects).ToList();

如果您想要获取这些对象的属性,则需要单独的Select()调用:

var allChildren = myObjects.SelectMany(o => o.ChildObjects)
                           .Select(c => c.SomeProperty)
                           .ToList();

答案 1 :(得分:0)

你可以这样做:

var ids = l.SelectMany(o => o.TheListOfSomeOtherObjects).Select(o => o.SomeOtherObjectID);

SelectMany从列表列表中创建一个展平列表。

如果需要列表,请添加ToList()

答案 2 :(得分:-1)

试试吧

var listSOOIds = listOfMyObjects.TheListOfSomeOtherObjects.Select(s => s.SomeOtherObjectID).ToList();