CodeBlanks Logo Icon CodeBlanks

Array.Find ve FindAll

C# kursu · Başlangıç · Ders 63/116

Array.Find ve FindAll ile koşula uyan elemanları bulmayı öğrenirsin.

Array.Find ve FindAll

Array.Find bir dizide koşula uyan ilk elemanı döndürür. Koşul bir predicate ile verilir: tek parametre alıp bool döndüren bir lambda ifadesi. Array.Find(nums, n => n > 10) çağrısı 10'dan büyük ilk elemanı verir; bulamazsa türün varsayılan değerini döndürür.

Array.FindAll ise koşula uyan tüm elemanları yeni bir dizi olarak döndürür. Find tek bir değer, FindAll ise bir dizi verir.

Lambda ve predicate

Predicate, tek parametre alıp bool döndüren bir fonksiyondur. C#'ta en sık lambda ifadesi ile yazılır: n => n > 10. Okun solundaki n parametre, sağdaki n > 10 ise döndürülen bool değeridir.

Bu lambda Array.Find, Array.FindAll ve Array.FindIndex gibi yöntemlere ikinci parametre olarak geçilir. Koşul her eleman için ayrı ayrı değerlendirilir.

Uygulama Büyük sayıları bul

Verilen int[] nums = { 3, 8, 15, 22, 7 }; dizisinde Array.FindAll(nums, n => n > 10) ile 10'dan büyük tüm elemanları bul ve big.Length'i Console.WriteLine ile yazdır. Lambda kullanmalısın.

Örnek çözümü göster
int[] big = Array.FindAll(nums, n => n > 10); ile diziyi al, sonra Console.WriteLine(big.Length); ile sayıyı yazdır.
Örnek çözüm:
using System;

class Program
{
    static void Main()
    {
        int[] nums = { 3, 8, 15, 22, 7 };
        // 10'dan büyük elemanları FindAll ile bul ve sayılarını yazdır
        int[] big = Array.FindAll(nums, n => n > 10);
        Console.WriteLine(big.Length);
    }
}

Kendini test et

  1. Yöntemi anlamına eşle

    Array.Find
    İlk eşleşen
    Array.FindAll
    Tüm eşleşenler
    Array.FindIndex
    İlk dizin
    n => n > 10
    Koşul (predicate)
  2. Array.Find çıktısı nedir?

    int[] nums = { 5, 12, 8, 20 };
    int first = Array.Find(nums, n => n > 10);
    Console.WriteLine(first);
    • 12
    • 5
    • 8
    • 20
    Cevabı göster

    12 — Doğru. 10'dan büyük ilk eleman 12'dir.

  3. FindAll çağrısı

    int[] nums = { 5, 12, 8, 20 };
    int[] big = ____;
    Console.WriteLine(big.Length);
    Cevabı göster
    int[] nums = { 5, 12, 8, 20 };
    int[] big = Array.FindAll(nums, n => n > 10);
    Console.WriteLine(big.Length);

Başlangıç bölümündeki tüm dersler