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.
You have a list of 100 people. You want to find only those older than 30. You'd write a loop, add an if, push to a new list — many lines of code.
LINQ (Language Integrated Query) does this in one line. It is a powerful query language built directly into C#.
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.
Where takes a condition and returns only the elements that satisfy it. It works just like WHERE in SQL.
var sayilar = new List<int> { 5, 12, 3, 18, 7, 25 };
var buyukler = sayilar.Where(x => x > 10).ToList();
// Sonuç: [12, 18, 25]
Select her elemanı dönüştürür. Bir listeden yeni bir liste üretmek için kullanılır — SQL'deki SELECT gibi.
Select transforms each element. It is used to produce a new list from an existing one — like SELECT in SQL.
var isimler = new List<string> { "ali", "veli", "ayşe" };
var buyukHarf = isimler.Select(x => x.ToUpper()).ToList();
// Sonuç: ["ALI", "VELI", "AYŞE"]
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]
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.
The power of LINQ is in chaining. You can write multiple operations one after another — filter, transform, sort, all in one line.
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"]