Bir dizideki elemanları diğer dizide arama

Bu yazımızda, bir dizideki elemanları diğer dizide arama işlemini yapacağız ve kaçıncı sırada olduğunu bulacağız. Array.IndexOf metodunu kullanacağız. IndexOf metodu 2 parametre alır, ilk parametre dizi, ikinci parametre ise bu dizide aranacak eleman'dır. Bulursa indis'ini döndürür, bulamazsa -1 döndürür. Aşağıdaki örnekteki kullanımı inceleyebilirsiniz.

Dizilerde Sıralama Arama Ters Çevirme
https://www.oguzhantas.com/csharp-formlar/400-dizilerde-siralama-arama-ters-cevirme.html


Aşağıdaki gibi İki dizimiz olsun,    

a= { 10, 5, 4}
b= { 3, 11 ,20, 5, 10, 2, 4, 5}

 
Birinci dizide geçen her bir elemanın 2. dizide hangi indise denk geldiğini nasıl buluruz. Örneğin a dizisinde 10, b dizisinde 5. eleman, a dizisinde 5 ise b dizisinde 4. eleman şeklinde bulma işlemini döngüler ile yapınız. 

Önce aşağıdaki gibi bir form tasarımı yapalım.




Burada button nesnesine tıklayarak aşağıdaki kodları yazalım.

private void button1_Click(object sender, EventArgs e)
        {
            int[] a = { 10, 5, 2, 4 };
            int[] b = { 3, 11, 20, 5, 10, 2, 4, 5 };
            int bulunan;
 
            for (int i = 0; i < a.Length; i++)
            {
             bulunan = Array.IndexOf(b, a[i]); //aranan a[i], aranacak dizi b
                 if(bulunan!=-1)
                 {
                     listBox1.Items.Add(a[i] + " değeri, b dizisinde " + (bulunan + 1) + ". sırada");  
                 }
           
           }
               
         }

Burada yaptığımız aslında a dizisinin uzunluğu kadar dönen bir döngü açıp, a dizisinin her bir elemanı b'de var mı diye kontrol etmek. Daha sonra eğer birşey bulunduysa bulunan değişkeninin değeri -1'den farklı bir değer olacaktır, bulamazsa -1 olacaktır.




      

Mutlu kodlamalar,
Oğuzhan TAŞ
Aralık 2020
Bookmark and Share