我有两个对象模型,如下所示:
public class MyObject
{
public List<SomeOtherObject> TheListOfSomeOtherObjects { get; set; }
}
public class SomeOtherObject
{
long SomeOtherObjectID { get; set; }
}
我有一个名为MyObjects
的{{1}}列表,我要从中提取列表ListOfMyObjects
内的所有SomeOtherObjectID
我想写这样的东西:
TheListOfSomeOtherObjects
由于语法原因,它无法正常工作。如何获取嵌套列表的列表?
感谢您的建议。
答案 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();