タイトルは泥のようにはっきりしていると確信しているので、例を投げて、誰かが私を正しい方向に向けることができるかどうかを見てみましょう。
public class topObj
{
public List<midObj> Mids { get; set; }
public List<botObj> Bots { get { // do some LINQ magic here } }
}
public class midObj
{
public List<botObj> Bots { get; set; }
}
public class botObj
{
}
したがって、一番上のオブジェクトから、一番上のオブジェクトからリスト<>にある中間オブジェクトのいずれかのリスト<>にあるすべての一番下のオブジェクトのリストを取得しようとしています。
今私はこのようなものを持っています:
public List<botObj> Bots
{
get
{
List<botObj> lst = new List<botObj>();
foreach (midObj mo in Mids)
{
lst.AddRange(mo.Bots);
}
return lst;
}
}
もちろん機能しますが、LINQがこれをより少ない行で実行する方法があると想定する必要があります。