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