列表包含字段

use*_*682 1 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)
Run Code Online (Sandbox Code Playgroud)

Tim*_*ter 6

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

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

Linq方法,使用Enumerable.Any:

contains = listA.Any(a => someB.Equals(a.bField));
Run Code Online (Sandbox Code Playgroud)

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