C# LINQ (Language Integrated Query)
LINQ, C# içerisinde farklı veri kaynaklarını (nesne listeleri, veritabanları, XML) ortak bir sözdizimi ile sorgulamamızı sağlar. Karmaşık foreach döngüleri yazmak yerine, tek satırda filtreleme ve sıralama yapabiliriz.
En Sık Kullanılan LINQ Metodları
- Where: Belirli bir koşula göre verileri filtreler.
- Select: Verileri dönüştürür veya belirli alanları seçer.
- OrderBy / OrderByDescending: Verileri sıralar.
- FirstOrNull / FirstOrDefault: Şarta uyan ilk elemanı getirir.
Kod Örneği: Liste Üzerinde Sorgulama
using System.Linq;
List<int> sayilar = new List<int> { 5, 12, 8, 20, 3, 15 };
// 1. Filtreleme: 10'dan büyük olanları al
var buyukSayilar = sayilar.Where(s => s > 10).ToList();
// 2. Sıralama: Küçükten büyüğe diz
var sirali = sayilar.OrderBy(s => s).ToList();
// 3. Tekil Veri: Şarta uyan ilk eleman (Yoksa null döner)
var ilkEleman = sayilar.FirstOrDefault(s => s == 8);
// 4. Nesne Listesi ile Kullanım
var aktifKullanicilar = kullanicilar
.Where(k => k.IsActive)
.OrderBy(k => k.Ad)
.Select(k => k.Ad)
.ToList();
Lambda İfadeleri (=>) Nedir?
LINQ metodları içinde gördüğünüz s => s > 10 yapısı bir Lambda ifadesidir. "s öyle ki s büyüktür 10" şeklinde okunur. Bu yapı, isimsiz fonksiyonlar oluşturarak kodun çok daha kısa yazılmasını sağlar.
💡 Önemli Not: LINQ sorguları Deferred Execution (Ertelenmiş Çalışma) mantığıyla çalışır. Sorguyu yazdığınız anda değil, veriyi bir döngüye soktuğunuzda veya
ToList() dediğiniz anda çalıştırılır.
Özet
- LINQ, kodun okunabilirliğini muazzam derecede artırır.
- Hata yapma riskini (döngü hataları gibi) azaltır.
System.Linqkütüphanesini eklemeyi unutmayın.