![]()
Şimdi de Linq da Sorgulama yaparken Listedeki bazı dataları alma yada atlama işlemleri nasıl yapılır onlara bakacağız. Verileri listelerken bazı durumlarda tüm kayıtları çekmek yerine belli sadıdaki veriyi çekmek isteyebiliriz yada tüm kayıtları çekerken bazı verilerin bazı özelliklerini çekmemiz gerekebilir. Bu tür işlmelerde Partition Operatörleri yani Take , TakeWhile , Skip SkipWhile methodlarını kullanıyoruz.
Take() : Listede bulunan belli bir kayıt adedi çekmek için kullanırız.
|
1 2 3 4 5 6 7 8 9 10 11 |
int[] Num = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; var numbers = Num.Take(5); foreach (int i in numbers) { Console.WriteLine(i); } //Output: 1,2,3,4,5 |
TakeWhile() : Listede bulunan datayı şart koşarak belirli sayıda getirir.
Önemli Not: TakeWhile , Where methodu ile karıştırılmamalıdır. Where methodunda bütün listede bakar ama TakeWhile da koşul devam etmezse bakmaz ve devam ettirmez. Yani;
TakeWhile bir Extension Yöntemidir ve verinin başlangıcından itibaren koşulları kontrol eder ve Koşul doğru olduğu sürece, verileri getirir yani aşağıda TakeWhile yöntemi ilk üç öğeyi getirir. Dördüncü öğeyi kontrol ettiğinde, koşul sağlamayınca bitirir sonrasında bazı öğeler (yani liste sonunda 4 ve 5 mevcut olsa bile) koşulu karşılasa bile, listedeki verilerin kalanını kontrol etmeyecektir. Where ise şart sağlasa da sağlamasa da listede bulunan her öğeyi kontrol eder.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
List<int> numbers = new List<int>() { 1, 2, 3, 6, 7, 8, 9, 10, 4, 5 }; List<int> Result1 = numbers.TakeWhile(num => num < 6).ToList(); foreach (var num in Result1) { Console.Write($“{num} “); } //Output: 1,2,3 List<int> Result2 = numbers.Where(num => num < 6).ToList(); foreach (var num in Result2) { Console.Write($“{num} “); } //Output: 1,2,3,4,5 |
Skip() : Listede bulunan verinin kaçtanesi atlayıp, kaçıncı kayıttan itibaren veriyi getireceğini belirler.
|
1 2 3 4 5 6 7 8 9 10 11 |
int[] Num = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }; var numbers = Num.Skip(5).Take(5); foreach (int num in numbers) { Console.Write($“{num} “); } //Output: 6 7 8 9 10 |
Yukarda ilk 5 kaydı atladı ve sonraki 5 kaydı getirdi.
SkipWhile() : Listedeki verinin şart koştuğun dataya kadar olanı atlayıp kalanını getirir.
|
1 2 3 4 5 6 7 8 9 10 11 12 |
List<int> numbers = new List<int>() { 1, 2, 3, 6, 7, 8, 9, 10, 4, 5 }; List<int> Result1 = numbers.SkipWhile(num => num <= 6).ToList(); foreach (var num in Result1) { Console.Write($“{num} “); } //Output: 7 8 9 10 4 5 |
sağlıcakla kalın…








Bir yanıt yazın