给定一个Parent对象列表,每个对象都有一个Child对象列表,我想找到与特定ID匹配的子对象。
public class Parent
{
public int ID { get; set; }
public List<Child> Children { get; set; }
}
public class Child
{
public int ID { get; set; }
}
现在我想要具有特定ID的Child对象:
List<Parent> parents = GetParents();
Child childWithId17 = ???
如何使用Linq执行此操作?
答案 0 :(得分:19)
我想你想要:
Child childWithId17 = parents.SelectMany(parent => parent.Children)
.FirstOrDefault(child => child.ID == 17);
请注意,这假定Parent的Children属性不是null引用或包含null Child引用。
答案 1 :(得分:6)
您可以使用SelectMany:
Child childWithId17 = parents.SelectMany(p => p.Children)
.Where(ch=>ch.ID==17)
.FirstOrDefault();