如何知道对象包含在忽略大小写的列表中

本文关键字:大小写 列表 何知道 对象 包含 | 更新日期: 2023-09-27 18:01:10

我想知道如何比较一个对象,如果列表中包含该对象,则忽略大小写假设举一个的例子

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
}

所以我想知道如何比较?

如何知道对象包含在忽略大小写的列表中

您可以实现IEquatable来控制对象的比较方式。然后,您可以通过实现Equals((方法来指定您希望比较的确切工作方式:

 public bool Equals(A other)
 {
     return this.P1.ToLower().Equals(other.P1.ToLower());
 }

您的

第一个包含(obj(

然后应该根据需要工作。

在类A中,重写Equals方法以忽略大小写比较每个属性。

然后使用:

bool found = lst.FirstOrDefault(x => x.Equals(obj)) != null;
var result = lst.FirstOrDefault(c => c.p1 == obj.p1 && c.p2 == obj.p2);
if(result != null)
{
    //Your Code is here.
}