列表包含字段

时间:2014-01-27 20:32:54

标签: c# list

我想知道最好的方法(非LINQ和LINQ)来测试列表是否包含元素的字段值。

public class A
{
    public B bField;
}

public class B {}

List<A> listA = new List<A> ();
B someB = new B();
listA.Contains(someB)

3 个答案:

答案 0 :(得分:6)

非Linq方法,一个简单的循环:

bool contains = false;
foreach(A a in listA)
{
    if(someB.Equals(a.bField))
    {
        contains = true;
        break;
    }
}

Linq方法,使用Enumerable.Any

contains = listA.Any(a => someB.Equals(a.bField));

请注意,您需要以有意义的方式覆盖Equals

答案 1 :(得分:4)

使用Any

listA.Any(x => x.bField == someB);

答案 2 :(得分:1)

你可能意味着:

listA.Any( x=> x.bField == someB);