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

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

我想majorList根据 name 值获取 A 的实例,但没有必要将它放在majorList. minorList也可以包含名称。如何使用 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 回答