0
Class A
{
   string name;
   IList<A> minorList = new List<A>();
}

IList<A> majorList = new List<A>();

majorList名前の値に応じてAのインスタンスを取得したいのですが、に含める必要はありませんmajorListminorList名前を含めることもできます。Linqを使用して取得するにはどうすればよいですか。そこにあるのならmajorList私だけで手に入れることができます

A a = majorList.First(s => s.Name == "Name");

majorListではなく、majorListのインスタンスのリストの一部にある場合はどうでしょうか。

4

1 に答える 1

3

次のようなものが必要なようです。

bool ContainsName(A a, string name)
{
    return a.name == name || a.minorList.Any(x => ContainsName(x, name));
}

それで:

A a = majorList.First(x => ContainsName(x, name));

もちろん、リストにサイクルがあると問題が発生します...

于 2012-06-12T10:05:26.817 に答える