static void Main(string[] args)
string SearchFor = "kAriM";
string[] data = new[]{"ali", "Behnaz", "Davood", "Elnaz", "Fatemeh", "Gholam", "Hanie", "Iman", "Javad", "Karim", "Leilla", "Nazgol", "Nazila"};
Console.WriteLine($"Search For [{SearchFor}] in :\n\n");
Console.WriteLine($"[{string.Join(",", data)}]\n\n");
int Index = Find(data, SearchFor);
Console.WriteLine($"Find Index is [{Index}]");
static int Find(string[] data, string SearachItem)
ConvertArrayToLower(data);
string Lower = SearachItem.ToLower();
int LastIndex = data.Length - 1;
while (FirstIndex <= LastIndex)
int MiddelIndex = (FirstIndex + LastIndex) / 2;
char middel = data[MiddelIndex][0];
FirstIndex = MiddelIndex + 1;
LastIndex = MiddelIndex - 1;
else if (data[MiddelIndex] != Lower)
FirstIndex = MiddelIndex + 1;
private static void ConvertArrayToLower(string[] data)
for (int i = 0; i < data.Length; i++)
data[i] = data[i].ToLower();