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

C# LINQ Method Syntax Example
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.Linq kütüphanesini eklemeyi unutmayın.