CodeBlanks Logo Icon CodeBlanks

Take ve Skip

C# kursu · Orta seviye · Ders 97/116

Take, Skip, TakeWhile ve SkipWhile ile parçalama yapmayı öğrenirsin.

Take ve Skip ile parçalama

Take(n) koleksiyonun ilk n elemanını alır. Skip(n) ise ilk n elemanı atlayıp kalanı verir. İkisi de ertelenmiş çalışır; sonuç yine bir IEnumerable<T>'dir.

Sayfalama (pagination) için ikisi birlikte kullanılır: 2. sayfadaki 5 eleman için items.Skip(5).Take(5). Bu model veri tabanı sorgularında da karşına çıkacak. Eleman sayısından fazla Take hata vermez; eldeki kadarını döndürür.

TakeWhile ve SkipWhile

TakeWhile(koşul) baştan itibaren koşulu sağlayan elemanları alır; ilk uymayan elemanda durur. SkipWhile(koşul) ise baştan itibaren koşulu sağlayanları atlar; ilk uymayan elemandan sonrasını verir.

Örnek: new[] { 2, 4, 6, 7, 8 }.TakeWhile(n => n % 2 == 0) sonucu { 2, 4, 6 }'dır; çünkü 7 çift değil ve durur. Bu metotlar sıralı veride örüntü aramak için kullanışlıdır.

Uygulama İlk üç sayıyı al

numbers dizisinin ilk üç elemanını Take(3) ile al ve foreach ile yazdır.

Örnek çözümü göster
numbers.Take(3) ile ilk üçü al, foreach ile gez, Console.WriteLine(n) ile yazdır.
Örnek çözüm:
using System;
using System.Linq;

class Program
{
    static void Main()
    {
        int[] numbers = { 10, 20, 30, 40, 50 };
        foreach (var n in numbers.Take(3))
        {
            Console.WriteLine(n);
        }
    }
}

Kendini test et

  1. Sayfalama nasıl yapılır?

    • Take(5).Skip(5)
    • Skip(5).Take(5)
    • Skip(5).Distinct()
    • Take(5).Where(...)
    Cevabı göster

    Skip(5).Take(5) — Doğru. Önce Skip ile önceki sayfaları atlar, sonra Take ile o sayfanın elemanlarını alırsın.

  2. Metodu sonucuna eşle

    Take(3)
    İlk üç eleman
    Skip(3)
    İlk üçü atla
    TakeWhile(...)
    Koşul bozulana kadar
    SkipWhile(...)
    Koşul bozulduktan sonra
  3. Take çağrısını tamamla

    var first3 = numbers.____(3);
    Cevabı göster
    var first3 = numbers.Take(3);

Orta seviye bölümündeki tüm dersler