using System; public class Test { public static void Main() { var data = new string[9999999]; var max = 98765; for (var i = 0 ; i <= max ; i++) { data[i] = "hello"; } var first = 0; var last = data.Length-1; while (first+1 < last) { var mid = (first+last)/2; if (string.IsNullOrEmpty(data[mid])) { last = mid; } else { first = mid; } } Console.WriteLine("{0} {1} {2} {3}", first, data[first], last, data[last]); } }