views:

155

answers:

1

Hello,

I have an object with attributes ; startIndex, endIndex

I am able to do binary search based on startIndex by implementing the following :

        int IComparable.CompareTo(object obj)
        {
            Repeat r = (Repeat)obj;
            return this.startIndex.CompareTo(r.startIndex);
        }

However with the same Repeat Object I d like to do binary search also on the end index separately.

How can i do this ?

Thanks.

+3  A: 

If you're using the Array.BinarySearch() or List<T>.BinarySearch() methods, you can use the overload that takes an IComparer or IComparer<T>. Then you can implement the comparison semantics in a separate class and pass it in when you want to do a search.

LBushkin
I m using List<Repeat>. I see that binary search on list also takes an IComparer. So that should be it?
Yes, it should work.
SLaks
Great. Thanks :)