Özet - LINQ temelleri
Where, Select ve OrderBy'ı birleştirerek bir öğrenci raporu yazarsın.
Özet - LINQ temelleri
Bu grupta LINQ'nün temel metotlarını öğrendin: Where süzer, Select dönüştürür, OrderBy sıralar, First ilk elemanı alır. Bunları zincirleyerek tek bir akış kurabilirsin.
Son derste bir öğrenci raporu yazacaksın: öğrencileri süz, sırala ve isimlerini dönüştür. Bu, gerçek uygulamalarda veriyi hazırlamanın tipik bir akışıdır: ham veri gider, işlenmiş rapor çıkar.
Uygulama Öğrenci raporu yaz
students listesinde notu 50'den büyük olanları Where ile süz, OrderBy ile nota göre artan sırala, Select ile yalnızca adlarını al ve foreach ile yazdır.
Örnek çözümü göster
students.Where(s => s.Grade > 50).OrderBy(s => s.Grade).Select(s => s.Name) zincirini kur, foreach ile gez ve Console.WriteLine(name) ile yazdır.
Örnek çözüm:
using System;
using System.Collections.Generic;
using System.Linq;
class Student
{
public string Name { get; set; }
public int Grade { get; set; }
}
class Program
{
static void Main()
{
var students = new List<Student>
{
new Student { Name = "Ayşe", Grade = 45 },
new Student { Name = "Mehmet", Grade = 78 },
new Student { Name = "Zeynep", Grade = 62 }
};
foreach (var name in students.Where(s => s.Grade > 50).OrderBy(s => s.Grade).Select(s => s.Name))
{
Console.WriteLine(name);
}
}
}
Uygulama En yüksek notlu öğrenci
Aşağıdaki students listesinde notu 50'den büyük olanları süz, OrderByDescending ile azan sırala ve First ile en yüksek notluyu al; adını Console.WriteLine ile yazdır.
Örnek çözümü göster
students.Where(s => s.Grade > 50).OrderByDescending(s => s.Grade).First() zincirini kur, .Name ile adını al ve yazdır.
Örnek çözüm:
using System;
using System.Collections.Generic;
using System.Linq;
class Student
{
public string Name { get; set; }
public int Grade { get; set; }
}
class Program
{
static void Main()
{
var students = new List<Student>
{
new Student { Name = "Ayşe", Grade = 45 },
new Student { Name = "Mehmet", Grade = 78 },
new Student { Name = "Zeynep", Grade = 62 }
};
var top = students.Where(s => s.Grade > 50).OrderByDescending(s => s.Grade).First();
Console.WriteLine(top.Name);
}
}
Kendini test et
-
Hangi sıra doğru?
- Select → Where → OrderBy
- OrderBy → First → Select
- Where → OrderBy → Select
- First → Where → OrderBy
Cevabı göster
Where → OrderBy → Select — Doğru. Önce süz (Where), sonra sırala (OrderBy), en son dönüştür (Select). Bu sıra verimli ve okunaktır.
-
Metodu amacına eşle
- Where
- Süzme
- Select
- Dönüştürme
- OrderBy
- Sıralama
- First
- İlk eleman