Memik Yanık - Kişisel Web Sitesi Ana Sayfa | Hakkımda | Kitap Önerileri | Fotoğraflarım | RSS RSS | İletişim

ArrayList'te Nasıl Arama Yapılır? - C#


ArrayList nesnesinde arama yaparken BinarySearch, IndexOf, LastIndexOf ve Contains metotlarını kullanabilirsiniz. Contains metodu parametre olarak aldığı object tipindeki bilgiyi ArrayList nesnesinde arar. Bulursa geriye true, bulamazsa false gönderir.

bool sonuc = Takimlar.Contains("Ankara");

if (sonuc == true) 
  MessageBox.Show("Bu eleman mevcut”);  

ArrayList’te arama yaparken aranan elemanın sıra numarasını öğrenmek istiyorsanız IndexOf metodunu kullanabilirsiniz. IndexOf() metodunun 1, 2 ve 3 parametreye sahip sürümleri bulunmaktadır. IndexOf metodu aşağıdaki gibi kullanıldığında arama ArrayList nesnesinin bütün elemanlarını kapsayacak şekilde yapılır. 

int sira = iller.IndexOf("Bursa");

textBox1.Text = sira.ToString();   

Arama işlemini ArrayList’in bütün elemanlarını kapsayacak şekilde yapmak istemiyorsa­nız aramanın başlamasını istediğiniz elemanın sıra numarasını IndexOf() metoduna 2. parametre olarak vermelisiniz. IndexOf() metodu aşağıdaki gibi kullanılırsa arama 3. elemandan itibaren yapılır ve söz konusu il bulunamayacağı için geriye -1 gönderilir.

private void arama_Click(object sender, EventArgs e)
 
  { 
    ArrayList iller = new ArrayList(); 
    iller.Add("İstanbul"); 
    iller.Add("Ankara"); 
    iller.Add("İzmir"); 
    iller.Add("Adana"); 
    int sira = iller.IndexOf("Ankara", 2); // sira -1 olur. 
 

ArrayList nesnesinde içeriği aynı olan birden fazla eleman varsa söz konusu bilgiye sahip son elemanın sıra numarasını öğrenmek istiyorsanız LastIndexOf() metodunu kullana­bilirsiniz. Aşağıda verdiğim kodda ArrayList nesnesi içinde aradığım “Adana” içeriğine sahip 2 eleman bulunmaktadır. Aramayı LastIndexOf() metodu ile yaptığım için formun başlığına 3 yazılır. Aramayı LastIndexOf yerine IndexOf metodu ile yapmış olsaydım bu kez içeriği “Adana” olan son elemanın sıra numarası yerine ilk elemanın sıra numarasını bulurdum. 

private void arama_Click(object sender, EventArgs e)
 
 { 
   ArrayList iller = new ArrayList(); 
   iller.Add("İstanbul"); 
   iller.Add("Adana"); 
   iller.Add("İzmir"); 
   iller.Add("Adana"); 
   int sonuc = iller.LastIndexOf("Adana");   
   this.Text = sonuc.ToString();    
 }

Arama yaparken BinarySearch metodunu kullanabilirsiniz. Aşağıdaki gibi kullanılan BinarySearch metodu kendisine parametre olarak verilen elemanı ArrayList’te arar. Bulursa geriye söz konusu elemanın sıra nosunu, bulamazsa geriye sıfırdan küçük bir değer gönderir. BinarySearch metodu ile ArrayList nesnesinde sağlıklı arama yapabil­mek için ArrayList nesnesinin elemanlarının sıralı olması gerekiyor.

private void arama_Click(object sender, EventArgs e)
 
 { 
   ArrayList iller = new ArrayList(); 
   iller.Add("İstanbul"); 
   iller.Add("Adana"); 
   iller.Add("İzmir"); 
   iller.Add("Ankara"); 
   iller.Sort(); 
   int sonuc = iller.BinarySearch("Ankara"); 
   this.Text = sonuc.ToString(); 
 }

Forumlardaki Sorular 01.06.2009 07:29:29

YORUM YOK


YorumlarYorum Yaz
Ana Sayfa | Hakkımda | Kitap Önerileri | Fotoğraflarım | RSS | İletişim
Memik Yanık 2004-2009 © Tüm Hakları Saklıdır.
Hazırlayan www.semgoksu.com