Ana Sayfa Hakkımda Dersler Blog MikrofondaOn The Mic İletişim Projeler Yakında
DerslerLessons TEMEL · C#

C# Temelleri — LINQ C# Basics — LINQ

10 dk okuma 10 min read · Emre Ulutabak
1
LINQ nedir? What is LINQ?

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#.

2
Where — filtreleme Where — filtering

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.

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 — transforming

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.

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 OrderBy — sorting
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 Chaining

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.

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. Don't forget ToList() — LINQ queries use lazy evaluation and are only executed when you call ToList().
6
Altın kurallar Golden rules
💡
LINQ okunabilirliği artırır. Döngü + if yerine Where + Select tercih et. LINQ improves readability. Prefer Where + Select over loops with if statements.
💡
FirstOrDefault(), Any(), Count(), Sum() gibi metotlar da LINQ'in parçasıdır. FirstOrDefault(), Any(), Count(), Sum() are all part of LINQ too.
💡
Entity Framework'te de aynı LINQ sözdizimi kullanılır — öğrendiğin burada, veritabanında da çalışır. Entity Framework uses the same LINQ syntax — what you learn here works on databases too.
MİNİ QUIZ MINI QUIZ
LINQ hakkında hangisi doğrudur? Which is correct about LINQ?
LINQ yalnızca veritabanı sorguları için kullanılır LINQ is only used for database queries
Where metodu koleksiyonu filtreler The Where method filters a collection
LINQ metotları zincirleme kullanılamaz LINQ methods cannot be chained
Select metodu koleksiyonu sıralar The Select method sorts a collection