我想知道如何比较一个对象,如果列表包含该对象则忽略大小写 假设以此为例
Class A
{
public string p1;
public string p2;
}
Class B
{
List<A> lst=new List<A>();
A obj=new a();
A obj1=new a();
obj1.p1="ABCD";
obj1.p2="xyz";
obj.p1="abcd";
obj.p2="XYZ";
lst.add(obj1);
lst.contains(obj)//return false
}
所以我想知道如何比较它?
答案 0 :(得分:4)
您可以实施IEquatable来控制对象的比较方式。然后,您可以通过实现Equals()方法确切地指定比较的工作方式:
public bool Equals(A other)
{
return this.P1.ToLower().Equals(other.P1.ToLower());
}
你的
lst.Contains(OBJ)
然后应该按你的需要工作。
答案 1 :(得分:0)
在A类中,重写Equals方法以比较忽略大小写的每个属性。
然后使用:
bool found = lst.FirstOrDefault(x => x.Equals(obj)) != null;
答案 2 :(得分:0)
var result = lst.FirstOrDefault(c => c.p1 == obj.p1 && c.p2 == obj.p2);
if(result != null)
{
//Your Code is here.
}