public int enBykBul(ref int[,] dizi)
{
int enByk = 0 , index = 0;
for (int i = 0; i < dizi.GetLength(1) - 1; i++)
{
for (int j = 1; j < dizi.GetLength(1) - i; j++)
{
if (dizi[0, j] > enByk)
{
enByk = dizi[0, j];
index = dizi[1, j];
}
}
}
return index;
}
private void btnAra_Click(object sender, EventArgs e)
{
string aranan = comboBox1.Text;
// büyük küçük harfe duyarsız yapmak için aranan ve itmKrtrs kısımlarında ToLower() kullanılabilir.
int[,] liste = new int[2, comboBox1.Items.Count]; // esleşme ve combo indexleri için
for (int x = 0; x < comboBox1.Items.Count; x++)
{
if (aranan.Length > comboBox1.Items[x].ToString().Length) // aranan itemden büyükse es geç
continue;
string itmKrtrs = comboBox1.Items[x].ToString();
int eslesme = 0;
for (int i = 0; i < aranan.Length; i++)
{
if (i >= itmKrtrs.Length)
break;
if (aranan[i] == itmKrtrs[i])
++eslesme;
else
i = aranan.Length; // eşleşmediyse döngüden çık
liste[0, x] = eslesme; // eslesme sayıları
liste[1, x] = x; // combobox sıra
}
}
int index = enBykBul(ref liste); // en çok eşleşme olan indexi döndürür.
if (index != 0)
comboBox1.SelectedIndex = index; // listenin başındakini seç
else
MessageBox.Show("Aradığınızı bulamadık :(", "Info", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}Böyle birşeyler yazdım, aranacak itemi comboboxa yazdıktan sonra butona basınca arama yapıyor ve en çok eşleşme olan itemi seçiyor. Kodlar üzerinde çok kafa yormadım belki daha performanslı bir hale getirebilirsiniz.