列表查询中的Linq列表

时间:2012-06-12 10:03:25

标签: .net linq

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

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

我希望从majorList获取A的实例,具体取决于名称值,但没有必要将其放在majorList中。 minorList也可以包含名称。我如何使用Linq获取它。如果只有majorList,我可以使用

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

如果它不在majorList中,而是在majorList的一些实例列表中呢?

1 个答案:

答案 0 :(得分: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));

如果您的列表中有任何周期,您当然会遇到问题...