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 的索引。如果找不到 valuevalue 小于 list 中的一个或多个元素, 则为一个负数,该负数是大于 value 的第一个元素的索引的按位求补。 如果找不到 valuevalue 大于 list 中的任何元素,则为一个负数,该负数是(最后一个元素的索引加 1)的按位求补。

备注

在 Visual Basic 和 C# 中,这个方法可以当成为类型IList(TSource)的实例方法来调用。在采用实例方法语法调用这个方法时,请省略第一个参数。请参考 扩展方法 (Visual Basic)扩展方法 (C# 编程指南) 获取更多信息。

Exceptions

 

异常 条件
ArgumentNullException listnull
ArgumentNullException selectornull
InvalidOperationException comparernull, 且 TResult 类型没有实现 IComparable(T) 泛型接口。

参见

Reference

ListUtil 类
BinarySearch 重载
Cyjb.Collections 命名空间

⚠️ **GitHub.com Fallback** ⚠️