【发布时间】:2010-11-07 18:16:33
【问题描述】:
我有一个List<MyObj> 和class MyObj : IComparable。我根据IComparable 接口在MyObj 类中编写了方法CompareTo,但是当我使用List<MyObj>.Contains(myObjInstance) 时它返回false,而它应该是true。
我不确定我是否理解我需要如何确保 List 在调用 Contains 函数时使用我的自定义比较方法。
这是我的 compareTo 实现:
#region IComparable Members
public int CompareTo(object obj)
{
MyObj myObj = (MyObj)obj;
return String.Compare(this.Symbol, myObj.Symbol, true);
}
#endregion
注意 Symbol 属性是一个字符串。
为了澄清,我在 compareTo 方法中设置了一个停止点,它甚至没有进入那里。
有人试过吗?
谢谢。
【问题讨论】:
-
具体CompareTo的实现
标签: c# list contains icomparable icomparer