Array.BinarySearch(Array, int32, int32, Object) Method is used to search a range of elements in a one-dimensional sorted array for a value, using the IComparable interface implemented by each element of the array and by the specified value. It searches only in a specified boundary that the user defines.
public static int BinarySearch(Array array, int index, int length, object value);
- array: It is 1-D array in which we have to search for an element.
- index: It is the starting index of the range from where you want to start the search.
- length: It is the length of the range in which we want to search.
- value: It is the value which we to search for.
Return Value: It returns the index of the specified value in the specified array if the value is found otherwise it returns a negative number. There are different cases of return values as follows:
- If the value is not found and value is less than one or more elements in the array, the negative number returned is the bitwise complement of the index of the first element that is larger than value.
- If the value is not found and value is greater than all elements in the array, the negative number returned is the bitwise complement of (the index of the last element plus 1).
- If this method is called with a non-sorted array, the return value can be incorrect and a negative number could be returned, even if the value is present in the array.
- ArgumentNullException: If the array is null.
- RankException: If array is multidimensional.
- ArgumentOutOfRangeException: If the range is less than lower bound OR length is less than 0.
- ArgumentException: If the index and length do not specify the valid range in array OR value is of the type that is not compatible with the elements of the array.
- InvalidOperationException: If value does not implement the IComparable interface, and the search encounters an element that does not implement the IComparable interface.
Below programs illustrate the above-discussed method:
1 5 7 12 32 42 56 Index: 4
Example 2: If the element is not in the array it prints a negative value or if it is out of the range.
1 5 7 12 32 42 56 Index :-7
- C# | Buffer.BlockCopy(Array, Int32, Array, Int32, Int32) Method
- C# | Array.BinarySearch(Array, Int32, Int32, Object, IComparer) Method
- C# | Char.GetUnicodeCategory(String, Int32) Method with Examples
- Int32.GetTypeCode Method in C# with Examples
- Int32.GetHashCode Method in C# with Examples
- Int32.CompareTo Method in C# with Examples
- Int32.Equals Method in C# with Examples
- File.Create(String, Int32, FileOptions, FileSecurity) Method in C# with Examples
- Int32.Parse(String) Method in C# with Examples
- File.Create(String, Int32) Method in C# with Examples
- File.Create(String, Int32, FileOptions) Method in C# with Examples
- Int32.MaxValue Field in C# with Examples
- Int32.MinValue Field in C# with Examples
- C# | Char.ConvertToUtf32(String, Int32) Method
- C# | Char.ConvertFromUtf32(Int32) Method
- C# | Char.IsControl(String, Int32) Method
- C# | Char.IsHighSurrogate(String, Int32) Method
- C# | Char.IsSurrogate(String, Int32) Method
- C# | Char.IsLowSurrogate(String, Int32) Method
- C# | Char.IsSurrogatePair(String, Int32) Method
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.