Bu yazımızda C# ta oluşturulan bir dizi içerisinde bir elemanın var olup olmadığını anlamamızı sağlayan arama işlemlerinde kullanılabilecek yöntemleri göreceğiz. Dizi içinde arama yapmak için kullanabileceğimiz birkaç farklı yöntem bulunmaktadır.
Dizi içinde arama yapmakta kullanılabilecek bu metotları örneklerle inceleyelim.
Contains Metodu ile Arama
Bu metot dizi içinde elemanın var olup olmadığını kontrol eder ve geriye
boolean türünde yani
true ya da
false olarak bir değer döndürür.
Bu metot
System.Array sınıfına ait bir metot olduğundan
System.Collections sınıfının projeye dahil edilmesi gerekecektir. Bu işlemin
using anahtar sözcüğü ile yapılması gerektiğini hatırlatarak kullanımı ile ilgili örneğimize geçelim.
PHP- Kodu
static void Main(string[] args)
{
string arananDeger;
ArrayList liste = new ArrayList();
liste.Add("Emine");
liste.Add("Ayşe");
liste.Add("Fatma");//www.yazilimkodlama.com
liste.Add("Hasan");
liste.Add("Cemal");
liste.Add("Kemal");
Console.Write("Aranacak İsmi Girin : ");
arananDeger = Console.ReadLine();
if(liste.Contains(arananDeger)==true)
{
Console.WriteLine("Bu isim listede mevcut.");
}
else
{
Console.WriteLine("Bu isim listede mevcut değil.");
}
Console.ReadKey();
}
Kodlarımızı çalıştırdığımızda aranan değerin listede olup olmadığı bilgisini göreceğiz.
IndexOf Metodu ile Arama Contains metodunda yapmış olduğumuz aramada aranan değerin listede var olup olmadığını öğrenmiş olduk.
IndexOf metodu ile yapacağımız aramada ise aranan değerin
index numarasını bize gönderecektir. Yani aradığımız değerin bu dizinin kaçıncı değeri olduğunu öğrenebileceğiz.
Eğer arama sonucu dizi içinde değer bulunamazsa geriye -1 değeri dönecektir. Örneği ve ekran çıktısını inceleyelim.
PHP- Kodu
static void Main(string[] args)
{
int indexNo;
string arananDeger;
ArrayList liste = new ArrayList();
liste.Add("Emine");
liste.Add("Ayşe");
liste.Add("Fatma");//www.yazilimkodlama.com
liste.Add("Hasan");
liste.Add("Cemal");
liste.Add("Kemal");
Console.Write("Aranacak İsmi Girin : ");
arananDeger = Console.ReadLine();
indexNo = liste.IndexOf(arananDeger);
if(indexNo==-1)
{
Console.WriteLine("Bu isim listede mevcut değil.");
}
else
{
Console.WriteLine("Aranan isim bulundu. İndex Değeri : {0}",indexNo);
}
Console.ReadKey();
}
LastIndexOf Metodu ile Arama IndexOf metodunda olduğu gibi dizi içinde arama yapar. Farklı olarak aranan eleman dizi içerisinde birden fazla mevcut ise bu elemanlardan sonuncusunun index değerini verir. Örneğimizi inceleyelim.
PHP- Kodu
static void Main(string[] args)
{
int indexNo;
string arananDeger;
ArrayList liste = new ArrayList();
liste.Add("Emine");
liste.Add("Ayşe");
liste.Add("Fatma");//www.yazilimkodlama.com
liste.Add("Emine");
liste.Add("Cemal");
liste.Add("Kemal");
Console.Write("Aranacak İsmi Girin : ");
arananDeger = Console.ReadLine();
indexNo = liste.LastIndexOf(arananDeger);
if(indexNo==-1)
{
Console.WriteLine("Bu isim listede mevcut değil.");
}
else
{
Console.WriteLine("Aranan isim bulundu. İndex Değeri : {0}",indexNo);
}
Console.ReadKey();
}
BinarySearch Metodu ile Arama
Dizi içinde aranan elemanın
index numarasını geriye döndürür. Eğer aranan eleman dizi içerisinde mevcut değilse geriye
negatif değer döndürür. Bu metotla arama yapabilmek için dizinin sıralı olması gerekmektedir. Aksi halde aranan değer bulunamayacaktır.
PHP- Kodu
static void Main(string[] args)
{
int indexNo;
string arananDeger;
ArrayList liste = new ArrayList();
liste.Add("Ayşe");
liste.Add("Beyza");
liste.Add("Emine");//www.yazilimkodlama.com
liste.Add("Fatma");
liste.Add("Galip");
liste.Add("Zeki");
Console.Write("Aranacak İsmi Girin : ");
arananDeger = Console.ReadLine();
indexNo = liste.BinarySearch(arananDeger);
if(indexNo==-1)
{
Console.WriteLine("Bu isim listede mevcut değil.");
}
else
{
Console.WriteLine("Aranan isim bulundu. İndex Değeri : {0}",indexNo);
}
Console.ReadKey();
}
Yukarıdaki örnekte listemiz sıralı olduğundan aranan isim listede bulunarak index numarası gösterilmiştir. Şimdi dizi sıralamasında ufak bir değişiklik yapalım ve arama işlemini tekrar yapalım.
PHP- Kodu
liste.Add("Beyza");
liste.Add("Ayşe");
liste.Add("Emine");//www.ircrehberi.net
liste.Add("Fatma");
liste.Add("Galip");
liste.Add("Zeki");
Şimdi kodlarımızı tekrar çalıştıralım.
Görüleceği üzere liste sıralı olmadığı için Ayşe isimli kişi listede olduğu halde Bu isim listede mevcut değil mesajı alınacaktır.
Kaynak :
[Üye Olmadan Linkleri Göremezsiniz. Lütfen Üye Olmak için TIKLAYIN...]