Ana Sayfa Hakkımda Dersler Blog Mikrofonda İletişim Projeler
Dersler TEMEL · C#

C# Temelleri — LINQ

10 dk okuma · Emre Ulutabak
1
LINQ nedir?

Elinde 100 kişilik bir liste var. Sadece yaşı 30'dan büyük olanları bulmak istiyorsun. Döngü yazar, if koyar, ayrı listeye eklersin — çok satır kod.

LINQ (Language Integrated Query) bu işi tek satırda yapar. Koleksiyonları sorgulamak için C#'a entegre edilmiş güçlü bir dildir.

2
Where — filtreleme

Where bir koşul alır ve yalnızca o koşulu sağlayan elemanları döndürür. SQL'deki WHERE ile aynı mantıktır.

csharp
var sayilar = new List<int> { 5, 12, 3, 18, 7, 25 };

var buyukler = sayilar.Where(x => x > 10).ToList();
// Sonuç: [12, 18, 25]
3
Select — dönüştürme

Select her elemanı dönüştürür. Bir listeden yeni bir liste üretmek için kullanılır — SQL'deki SELECT gibi.

csharp
var isimler = new List<string> { "ali", "veli", "ayşe" };

var buyukHarf = isimler.Select(x => x.ToUpper()).ToList();
// Sonuç: ["ALI", "VELI", "AYŞE"]
4
OrderBy — sıralama
csharp
var sayilar = new List<int> { 5, 12, 3, 18, 7 };

var sirali = sayilar.OrderBy(x => x).ToList();
// Sonuç: [3, 5, 7, 12, 18]

var tersSirali = sayilar.OrderByDescending(x => x).ToList();
// Sonuç: [18, 12, 7, 5, 3]
5
Zincirleme kullanım

LINQ'in gücü zincirleme kullanımdadır. Birden fazla işlemi art arda yazabilirsin — filtrele, dönüştür, sırala, hepsi tek satırda.

csharp
var urunler = new List<string> { "elma", "armut", "erik", "kiraz", "kayısı" };

var sonuc = urunler
    .Where(x => x.Length > 4)       // 4 harften uzun olanlar
    .Select(x => x.ToUpper())        // büyük harfe çevir
    .OrderBy(x => x)                 // alfabetik sırala
    .ToList();

// Sonuç: ["ARMUT", "KAYISI", "KİRAZ"]
💡
ToList() çağrısını unutma — LINQ sorguları lazy evaluation kullanır, ToList() ile gerçekten çalıştırılır.
6
Altın kurallar
💡
LINQ okunabilirliği artırır. Döngü + if yerine Where + Select tercih et.
💡
FirstOrDefault(), Any(), Count(), Sum() gibi metotlar da LINQ'in parçasıdır.
💡
Entity Framework'te de aynı LINQ sözdizimi kullanılır — öğrendiğin burada, veritabanında da çalışır.
MİNİ QUIZ
LINQ hakkında hangisi doğrudur?
LINQ yalnızca veritabanı sorguları için kullanılır
Where metodu koleksiyonu filtreler
LINQ metotları zincirleme kullanılamaz
Select metodu koleksiyonu sıralar