我有一个属性对象; startIndex,endIndex
通过实现以下功能,我可以基于startIndex进行二进制搜索:
int IComparable.CompareTo(object obj)
{
Repeat r = (Repeat)obj;
return this.startIndex.CompareTo(r.startIndex);
}
然而,使用相同的重复对象,我还想分别在结束索引上进行二进制搜索。
我该怎么做?
感谢。
答案 0 :(得分:4)
如果您使用Array.BinarySearch()
或List<T>.BinarySearch()
方法,则可以使用带有IComparer
或IComparer<T>
的重载。然后,您可以在单独的类中实现比较语义,并在您想要搜索时将其传递。