Geçenlerde bitirme projemle uğraşırken LINQ teknolojisini ve Extension metodlarını oldukça sık kullandığımı farkettim. Geriye dönüp baktığımda yazdığım kodları linq kullanmadan yazmaya kalkınca gerçekten de ne kadar vakit kazandığımın bir daha farkına vardım. Projemden örnek vermek gerekirse aşağıdaki gibi bir soru sınıfım var. Her soru bu QuizQuestion sınıfı ile temsil ediliyor. Soruların bulunduğu bir listeden hangi soruların sorulup hangilerinin sorulmadığını bulup sorulmayanları seçmek için iki yöntemi aşağıda bulabilirsiniz.

Normal hali:
List<QuizQuestion> sorular = GetQuestions();  
List<QuizQuestion> sorulmayanlar = new List<QuizQuestion>();

foreach (QuizQuestion soru in sorular)  
{         
    if (soru.Asked == false)
    {
        sorulmayanlar.Add(soru); 
    }  
}
Linq ile yazılmış hali:
List<QuizQuestion> sorular = new List<QuizQuestion>();  
List<QuizQuestion> sorulmayanlar = sorular.Where(q => q.Asked == false).ToList();  

Gördüğünüz gibi fark ortada. Tabi burada basit düşünmemek lazım çok daha büyük ve karmaşık projelerde asıl faydası ortaya çıkacaktır.

About the Author