Array.BinarySearch(Array, Int32, Int32, Object) Method with examples in C# Last Updated : 24 Jan, 2019 Comments Improve Suggest changes Like Article Like Report 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: 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. Exceptions: 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: 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: https://docs.microsoft.com/en-us/dotnet/api/system.array.binarysearch?view=netframework-4.7.2#System_Array_BinarySearch_System_Array_System_Int32_System_Int32_System_Object_ Comment More infoAdvertise with us Next Article Array.BinarySearch(Array, Int32, Int32, Object) Method with examples in C# K Krishna_Sai_Ketha Follow Improve Article Tags : C# Similar Reads Non-linear Components In electrical circuits, Non-linear Components are electronic devices that need an external power source to operate actively. Non-Linear Components are those that are changed with respect to the voltage and current. Elements that do not follow ohm's law are called Non-linear Components. Non-linear Co 11 min read Spring Boot Tutorial Spring Boot is a Java framework that makes it easier to create and run Java applications. It simplifies the configuration and setup process, allowing developers to focus more on writing code for their applications. This Spring Boot Tutorial is a comprehensive guide that covers both basic and advance 10 min read Class Diagram | Unified Modeling Language (UML) A UML class diagram is a visual tool that represents the structure of a system by showing its classes, attributes, methods, and the relationships between them. It helps everyone involved in a projectâlike developers and designersâunderstand how the system is organized and how its components interact 12 min read Steady State Response In this article, we are going to discuss the steady-state response. We will see what is steady state response in Time domain analysis. We will then discuss some of the standard test signals used in finding the response of a response. We also discuss the first-order response for different signals. We 9 min read Backpropagation in Neural Network Back Propagation is also known as "Backward Propagation of Errors" is a method used to train neural network . Its goal is to reduce the difference between the modelâs predicted output and the actual output by adjusting the weights and biases in the network.It works iteratively to adjust weights and 9 min read Polymorphism in Java Polymorphism in Java is one of the core concepts in object-oriented programming (OOP) that allows objects to behave differently based on their specific class type. The word polymorphism means having many forms, and it comes from the Greek words poly (many) and morph (forms), this means one entity ca 7 min read 3-Phase Inverter An inverter is a fundamental electrical device designed primarily for the conversion of direct current into alternating current . This versatile device , also known as a variable frequency drive , plays a vital role in a wide range of applications , including variable frequency drives and high power 13 min read What is Vacuum Circuit Breaker? A vacuum circuit breaker is a type of breaker that utilizes a vacuum as the medium to extinguish electrical arcs. Within this circuit breaker, there is a vacuum interrupter that houses the stationary and mobile contacts in a permanently sealed enclosure. When the contacts are separated in a high vac 13 min read AVL Tree Data Structure An AVL tree defined as a self-balancing Binary Search Tree (BST) where the difference between heights of left and right subtrees for any node cannot be more than one. The absolute difference between the heights of the left subtree and the right subtree for any node is known as the balance factor of 4 min read CTE in SQL In SQL, a Common Table Expression (CTE) is an essential tool for simplifying complex queries and making them more readable. By defining temporary result sets that can be referenced multiple times, a CTE in SQL allows developers to break down complicated logic into manageable parts. CTEs help with hi 6 min read Like