我想知道最好的方法(非LINQ和LINQ)来测试列表是否包含元素的字段值。
public class A
{
public B bField;
}
public class B {}
List<A> listA = new List<A> ();
B someB = new B();
listA.Contains(someB)
答案 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);