Skip metodu, bir koleksiyonda parametre ile girilen miktar kadar kaydı, 1. satırdan başlamak üzere atlamak için kullanılmaktadır. Parametre değerinden sonraki satırlar IEnumerablelist olarak geri döndürülmektedir. Metod int tipinde parametre almaktadır.
public class Kisi { public Kisi() { } public Kisi(string Ad, int Yas, bool Durum) { this.Ad = Ad; this.Yas = Yas; this.Durum = Durum; } public string Ad { get; set; } public int Yas { get; set; } public bool Durum { get; set; } }
static void Main(string[] args) { List< Kisi> Kisiler = new List< Kisi>(); Kisiler.Add(new Kisi("Ali", 15, true)); Kisiler.Add(new Kisi("Can", 22, true)); Kisiler.Add(new Kisi("Hakan", 19, false)); Kisiler.Add(new Kisi("Yılmaz", 41, true)); Kisiler.Add(new Kisi("Ahmet", 25, true)); Kisiler.Add(new Kisi("Veli", 17, true)); var sonuc = Kisiler.Skip(3); foreach (var kisi in sonuc) { Console.WriteLine(kisi.Ad); } Console.Read(); }
Ekran çıktısı aşağıdaki gibidir.
Metod 3 tane kaydı atladı ve sonraki kayıtları geri döndürdü.
Eğer Skip metoduna parametre olarak koleksiyon içerisinde bulunan eleman sayısı kadar ya da daha fazla değer verilirse metod geriye IEnumerabletipinde boş bir liste döndürmektedir.
Örnekte parametre olarak 6 değerini girdim. Bu değer koleksiyonun eleman sayısına eşittir. Yani geriye 0 adet kayıt dönecektir.
Bu durumda Skip metodu yukarıda bulunan Count alanında bir hesaplama yapıyor. Hesaplama işlemini sadece geriye kayıt dönmediği durumlarda yapmaktadır. Aşağıdaki örnekte daha net anlaşılacaktır.
Koleksiyon içerisinde bulunan kayıt sayısı 6, Skip metodunda belirtilen parametre değeri 9 dur. Metod geriye parametrede, liste eleman sayısından 3 adet fazla değer belirttiğimizi söylemektedir.
Az öncede belirttiğim gibi eğer geriye bir değer dönüyorsa, Count alanında bir hesaplama yapılmaz. Source alanı ise Skip metodunun çalıştırıldığı koleksiyon bilgisini her durumda vermektedir.
Metodun mantığı aslında çok kısadır. Detaylar ile konuyu biraz uzattım.
Başarılar dilerim.