11

それぞれが子オブジェクトのリストを持つ親オブジェクトのリストを指定して、特定の 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 を使用してこれを行うにはどうすればよいですか?

4

2 に答える 2

26

私はあなたが欲しいと思います:

Child childWithId17 = parents.SelectMany(parent => parent.Children)
                             .FirstOrDefault(child => child.ID == 17);

これは、Parent の Children プロパティが null 参照ではないこと、または null の Child 参照が含まれていないことを前提としていることに注意してください。

于 2013-04-30T10:23:29.670 に答える
7

SelectMany を使用できます。

Child childWithId17 = parents.SelectMany(p => p.Children)
                             .Where(ch=>ch.ID==17)
                             .FirstOrDefault();
于 2013-04-30T10:24:21.757 に答える