C#二进制搜索2个索引

时间:2010-01-03 03:24:24

标签: c# algorithm search binary-search icomparable

我有一个属性对象; startIndex,endIndex

通过实现以下功能,我可以基于startIndex进行二进制搜索:

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

然而,使用相同的重复对象,我还想分别在结束索引上进行二进制搜索。

我该怎么做?

感谢。

1 个答案:

答案 0 :(得分:4)

如果您使用Array.BinarySearch()List<T>.BinarySearch()方法,则可以使用带有IComparerIComparer<T>的重载。然后,您可以在单独的类中实现比较语义,并在您想要搜索时将其传递。