2014-05-01 138 views
-1

我想知道如何比較的對象,如果一個列表包含忽略大小寫 該對象假定舉一個例子這種如何知道一個對象包含在忽略大小寫

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

@Benesh - 我知道這一點,但在此列出的類型是字符串不是。它的類型A(類) – user3138879

回答

4

您可以執行IEquatable來控制對象的比較方式。然後,您可以精確指定要如何比較通過實施等於工作()方法:

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

lst.Contains(OBJ)

應該再上班你需要。

0

在類A中重寫Equals方法來比較每個屬性忽略大小寫。

然後使用:

bool found = lst.FirstOrDefault(x => x.Equals(obj)) != null; 
+0

Simons解決方案似乎更好。去那個 – apc

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