Lan*_*lot 8 c# contains list icomparable icomparer
我有一个List<MyObj>用class MyObj : IComparable.我按照接口CompareTo在MyObj类中编写了方法IComparable,但是当我使用List<MyObj>.Contains(myObjInstance)它false时,它应该返回它true.
我不确定我是否理解我需要继续确保List在调用then Contains函数时使用我的自定义比较方法.
这是我的compareTo实现:
#region IComparable Members
public int CompareTo(object obj)
{
MyObj myObj = (MyObj)obj;
return String.Compare(this.Symbol, myObj.Symbol, true);
}
#endregion
Run Code Online (Sandbox Code Playgroud)
请注意,Symbol属性是一个字符串.
为了澄清我已经在compareTo方法中设置了一个停止点,它甚至没有进入那里.
有人试过吗?
谢谢.
Fre*_*örk 23
找出您的CompareTo方法是否被调用的绝对最简单的方法是在其中设置断点并按F5运行您的程序.但我认为,List<T>.Contains寻找进行IEquatable<T>比较的界面.