BinarySearch Demo

CSharp · Console

/Program.cs

using System;
					
public class Program
{
	public static void Main()
	{
		int[] breakpoint = new int[] {0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100,
		 110, 120, 130, 140, 150, 160, 170, 180, 190, 200};
		
		foreach(int valueSearched in new[]{153, 225, -1, 5})
		{
			int index = GetNearestIndex(breakpoint, valueSearched);
			Console.WriteLine($"Searched <{valueSearched}> at index <{index}> with value <{breakpoint[index]}>");
		}
		
	}
	
	public static int GetNearestIndex<T>(T[] items, T value)
	{
		int index = Array.BinarySearch(items, value);
		if(index >= 0) 
			return index;
		if(index == -1)
			return 0;
		return ~index - 1;
	}
}

;