Array.Find ve FindAll
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
-
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)
-
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.
-
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);