【发布时间】:2016-05-20 10:36:35
【问题描述】:
我正在尝试使用自定义相等比较器从列表中删除重复项,但我似乎无法正确处理。
简化示例:
class A
{
public A(string Test) { this.Test = Test; }
public string Test;
public string ToString() { return Test; }
}
class AsComparer: EqualityComparer<A>
{
public override bool Equals(A x, A y)
{
return (x.Test == y.Test);
}
public override int GetHashCode(A obj)
{
return obj.Test.GetHashCode();
}
}
static private void Test()
{
var As = new List<A> { new A("Test1"), new A("Test3"), new A("Test1"), new A("Test2") };
As.Distinct(new AsComparer());
As.Sort((e1, e2) => { return (e1.Test.CompareTo(e2.Test)); });
}
这将返回集合“Test1”、“Test1”、“Test2”、“Test3”。我希望只有一个“Test1”,但似乎无法弄清楚如何正确地做到这一点。
有什么想法吗?
【问题讨论】: