Bu kodda ne yanlış var? – 2
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.
ListarrListe = 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:
- Bu kodda ne yanlış var? – 3
- Bu kodda ne yanlış var? – 7
- Dizide bir elemandan kaç adet olduğunu bulalım
- Bu kodda ne yanlış var? – 6
- Bu kodda ne yanlış var? – 8
- Bu kodda ne yanlış var? – 4
- Bu kodda ne yanlış var? – 5
- Kısa Sınav – 14
- Bu kodda ne yanlış var? – 1
- Listede Filtreleme Yapmanın İyi – Kötü – Çirkin Yolu
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]; }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.