IEnumerable<T> işlem hatları ve ertelenmiş yürütme
IEnumerable üzerinde LINQ işlem hatları oluşturun; ToList/ToArray ile ertelenmiş yürütme ve somutlaştırma arasındaki farkı görün.
IEnumerable<T> işlem hatları ve ertelenmiş yürütme, CoddyKit'te ücretsiz bir C# Academy dersidir. Bu, 3 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, C# Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. C# Academy kursu toplamda 3 dersten oluşur.
LINQ pipeline fikri
Pipeline = bir diziyi dönüştüren işleç zinciridir.
- Kaynak: bir IEnumerable<T>
- İşleçler: Where, Select vb.
- Hedef: numaralandırma (foreach) veya somutlaştırma (ToList)
Where + Select
Önce Where, ardından Select kullanarak bir zincir oluşturun. Sorgu, üzerinde yineleme yaptıkça çalışır.
using System;
using System.Linq;
public class Program
{
public static void Main(string[] args)
{
int[] numbers = new int[] { 1, 2, 3, 4, 5 };
// Build pipeline: keep even numbers, then square them
var query = numbers
.Where(n => n % 2 == 0)
.Select(n => n * n);
foreach (int x in query)
{
Console.WriteLine(x); // 4, 16
}
}
}
Ertelenmiş yürütmenin etkisi
Ertelenmiş yürütme: sorgu numaralandırma sırasında değerlendirilir; bu nedenle kaynakta daha sonra yapılan değişiklikler görülebilir.
using System;
using System.Collections.Generic;
using System.Linq;
public class Program
{
public static void Main(string[] args)
{
List<int> data = new List<int>();
data.Add(1);
data.Add(2);
var evens = data.Where(x => x % 2 == 0); // query is not executed yet
data.Add(3);
data.Add(4); // modify source after building query
foreach (int e in evens)
{
Console.WriteLine(e); // prints 2 and 4 because execution is deferred
}
}
}
Somutlaştırma (ToList)
Diziyi şimdi somutlaştırmak ve kaynakta daha sonra yapılacak değişikliklerden etkilenmemek için ToList/ToArray kullanın.
using System;
using System.Collections.Generic;
using System.Linq;
public class Program
{
public static void Main(string[] args)
{
List<string> words = new List<string>();
words.Add("apple");
words.Add("banana");
var longOnes = words.Where(w => w.Length >= 6);
List<string> snapshot = longOnes.ToList(); // materialize now
words.Add("pear"); // changes after materialization
words.Add("cherry"); // length 6, but snapshot is already frozen
foreach (string w in snapshot)
{
Console.WriteLine(w); // prints "banana" only
}
}
}
OrderBy + Take
Küçük ve okunabilir pipeline yapıları oluşturmak için OrderBy, Select ve Take/Skip işleçlerini birleştirin.
using System;
using System.Linq;
public class Program
{
public static void Main(string[] args)
{
int[] nums = new int[] { 5, 1, 4, 2, 3 };
var firstTwoSortedSquares = nums
.OrderBy(n => n) // 1,2,3,4,5
.Select(n => n * n)
.Take(2); // 1,4
foreach (int x in firstTwoSortedSquares)
{
Console.WriteLine(x);
}
}
}
İpuçları ve dikkat edilmesi gerekenler
İpuçları:
- Sorgular bir plan oluşturur; siz onları numaralandırdığınızda veya somutlaştırdığınızda çalışırlar.
- Sabit bir anlık görüntüye ihtiyaç duyduğunuzda ToList ile somutlaştırın.
- Her adımı küçük tutun ve anlaşılır biçimde adlandırın.
- Maliyetli kaynakları yeniden numaralandırmaktan kaçının; gerekirse bir liste saklayın.
Ertelenmiş yürütme kuralı
Özet
Özet: Where/Select vb. işleçlerle küçük IEnumerable<T> pipeline yapıları oluşturun. Unutmayın: yürütme, yineleme yapana veya ToList/ToArray çağırana kadar ertelenir.
Sıkça Sorulan Sorular
“IEnumerable<T> işlem hatları ve ertelenmiş yürütme” dersi ücretsiz mi?
Evet — “IEnumerable<T> işlem hatları ve ertelenmiş yürütme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve C# Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. C# Academy kursu toplamda 3 dersten oluşur.
“IEnumerable<T> işlem hatları ve ertelenmiş yürütme” dersinde ne öğreneceğim?
IEnumerable üzerinde LINQ işlem hatları oluşturun; ToList/ToArray ile ertelenmiş yürütme ve somutlaştırma arasındaki farkı görün. C# Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
C# Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te C# Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 3 dersinin 1. dersidir.
“IEnumerable<T> işlem hatları ve ertelenmiş yürütme” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu C# Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her C# Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- IEnumerable işlem hatları ve ertelenmiş yürütme
- Select, Where, OrderBy, Take/Skip
- Sorgu söz dizimi ve yöntem söz dizimi