M_Cyjb_Collections_ListUtil_BinarySearch__1_1 - CYJB/Cyjb GitHub Wiki
在指定排序 IList(T) 中搜索特定元素。
Namespace: Cyjb.Collections
Assembly: Cyjb (in Cyjb.dll) Version: 1.0.23+7750dd8e971297c5fa962a3bee37fb78f72793f6
C#
public static int BinarySearch<T>(
this IList<T> list,
T value,
IComparer<T>? comparer = null
)
- list
- Type: System.Collections.Generic.IList(T)
要搜索的从零开始的排序 IList(T)。 - value
- Type: T
要搜索的对象。 - comparer (Optional)
- Type: System.Collections.Generic.IComparer(T)
比较元素时要使用的 IComparer(T) 实现。
- T
- 列表元素的类型。
Type: Int32
如果找到 value,则为指定 list 中的指定 value 的索引。如果找不到 value 且 value 小于 list 中的一个或多个元素, 则为一个负数,该负数是大于 value 的第一个元素的索引的按位求补。 如果找不到 value 且 value 大于 list 中的任何元素,则为一个负数,该负数是(最后一个元素的索引加 1)的按位求补。
在 Visual Basic 和 C# 中,这个方法可以当成为类型IList(T)的实例方法来调用。在采用实例方法语法调用这个方法时,请省略第一个参数。请参考 扩展方法 (Visual Basic) 或 扩展方法 (C# 编程指南) 获取更多信息。
异常 | 条件 |
---|---|
ArgumentNullException |
list 为 null 。 |
InvalidOperationException |
comparer 为 null , 且 T 类型没有实现 IComparable(T) 泛型接口。 |