Array.BinarySearch(Array, Int32, Int32, Object) Method with examples in C# (original) (raw)

Last Updated : 24 Jan, 2019

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.Syntax:

public static int BinarySearch(Array array, int index, int length, object value);

Parameters:

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:

Exceptions:

Below programs illustrate the above-discussed method:Example 1:

csharp `

// C# Program to illustrate the use of // Array.BinarySearch(Array, Int32, // Int32, Object) Method using System; using System.IO;

class GFG {

// Main Method
static void Main()
{
    // initializing the integer array
    int[] intArr = {42, 5, 7, 12, 56, 1, 32};
    
    // sorts the intArray as it must be 
    // sorted before using method
    Array.Sort(intArr);
    
    // printing the sorted array
    foreach(int i in intArr) Console.Write(i + " "
                                          + "\n");
                                          
    // intArr is the array we want to find
    // and 1 is the starting index
    // of the range to search. 5 is the 
    // length of the range to search.
    // 32 is the object to search
    int index = Array.BinarySearch(intArr, 1, 5, 32);
    
    if (index >= 0) {
        
        // if the element is found it 
        // returns the index of the element
        Console.Write("Index: " + index);
    }
    
    else {
        
        // if the element is not
        // present in the array or
        // if it is not in the 
        // specified range it prints this
        Console.Write("Element is not found");
    }
}

}

`

Output:

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.

csharp `

// C# Program to illustrate the use of // Array.BinarySearch(Array, Int32, // Int32, Object) Method using System; using System.IO;

class GFG {

// Main Method
static void Main()
{
    // initializing the integer array
    int[] intArr = {42, 5, 7, 12,
                      56, 1, 32};
                      
    // sorts the intArray as it must be 
    // sorted before using Method
    Array.Sort(intArr);
    
    // printing the sorted array
    foreach(int i in intArr) Console.Write(i + " "
                                          + "\n");
                                          
    // intArr is the array we want to
    // find. and 1 is the starting
    // index of the range to search. 5 is 
    // the length of the range to search
    // 44 is the object to search
    int index = Array.BinarySearch(intArr, 1, 5, 44);
    
    // as the element is not present
    // it prints a negative value.
    Console.Write("Index :" + index);
}

}

`

Output:

1 5 7 12 32 42 56 Index :-7

Reference: