Ana Sayfa > C#, Programlama > Bu kodda ne yanlış var? – 2

Bu kodda ne yanlış var? – 2

15 Ocak 2010

Aşağıdaki kod parçasını çalıştıralım. Sifir isimli değişkenin değerine baktığımızda 0 olduğunu görüyoruz.

List arrListe = new List(new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 });
int Sifir = arrListe.Find(
	delegate(int i) {
		return i == 0;
	}
);

Listede 0 değeri yok!. Neden sonuç 0 dönüyor? Bu kodu nasıl düzeltebiliriz?


İlgili diğer başlıklar:



  1. Murat Aras
    Şubat 16th, 2010 at 16:47 | #1
    int? sifir = null;
    
    List arrListe = new List(new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 });
    int sifirIndex = arrListe.FindIndex(
        delegate(int i)
        {
            return i == 0;
        }
    );
    
    if (sifirIndex != -1)
    {
        sifir = arrListe[sifirIndex];
    }
  2. Murat Aras
    Şubat 16th, 2010 at 16:53 | #2

    Find metodu, dizi icinde 0 degerini bulamadigi icin donus degeri olarak verilen degiskenin tipi olan int tipinin default degeri olan 0 i dondurmektedir. Find metodu icinde delegate edilen fonksiyonda kullanilan kriter, donus degeri olarak verilen degisken tipinin default degerine esit oldugundan, Find metodu yerine FindIndex metodu kullanilmalidir. FindIndex metodu ile elde ettigimiz index numarasindan da dizi icinde aradigimiz elemana ulasabiliriz.