C#在2个索引上进行二进制搜索
我有一个具有属性的对象;的startIndex,endIndex的C#在2个索引上进行二进制搜索
我能够做到通过实施基于的startIndex二进制搜索如下:然而以相同的重复对象
int IComparable.CompareTo(object obj)
{
Repeat r = (Repeat)obj;
return this.startIndex.CompareTo(r.startIndex);
}
I D喜欢做的二进制搜索还对年底指数分别。
我该怎么做?
谢谢。
如果您使用的Array.BinarySearch()
或List<T>.BinarySearch()
方法,您可以使用需要一个IComparer
或IComparer<T>
过载。然后,您可以在单独的类中实现比较语义,并在您想要进行搜索时将其传入。
我使用列表
是的,它应该工作。 – SLaks 2010-01-03 03:29:10
太好了。谢谢 :) – DarthVader 2010-01-03 03:30:53
您可能想要使用IComparable的类型化版本,如IComparable,它将定义CompareTo(Repeat r)而不是无类型对象。 –
2010-01-03 03:29:09