我有2個列表class A
,A
已實施Equals(object obj)
和GetHashCode()
這2個方法工作正常,代碼如下。如何在C#中比較自定義泛型List <>?
class A
{
public string TEST
{
get;
set;
}
public override bool Equals(object obj)
{
return ((A)obj).TEST == this.TEST;
}
public override int GetHashCode()
{
return this.TEST.GetHashCode();
}
}
我有這個類的2列表,firstList = { X1, X2, X3 }
和secondList = { X1, X2, Y1 }
。當我使用firstList.Except(secondList)
時,它總是返回firstList中的所有元素,並且secondList.Except(firstList)
也返回secondList中的每個元素,如下所示。
var test1 = firstList.Except(secondList).ToList(); // test1 = all elements of firstList
var test2 = secondList.Except(firstList).ToList(); // test2 = all elements of secondList
我想知道我該如何解決這個問題?
什麼是TEST屬性? – 2010-07-24 14:57:44
此代碼不能編譯。測試沒有類型。 – onof 2010-07-24 14:58:00
TEST是字符串,我已經修正了它=) – Anonymous 2010-07-24 15:00:55