C#
Özet - LINQ sorgu söz dizimi
from, where, select ve group by'ı birleştirerek bir çalışan raporu yazarsın.
Özet - LINQ sorgu söz dizimi
Bu grupta from, where, select, orderby ve group by ... into yan tümcelerini öğrendin. Bir sorgu from ile başlar, select veya group ile biter; arada süzme, sıralama ve dönüştürme yapılır.
Şimdi bunları birleştirerek bir çalışan raporu üreteceksin: önce yüksek maaşlıları where ile süzeceksin, sonra bölüm ve maaşa göre orderby ile sıralayıp özelleştirilmiş bir çıktı üreteceksin.
Uygulama Yüksek maaşlı çalışanları süz
Aşağıdaki employees listesinde from e in employees where e.Salary >= 5500 select e ile maaşı 5500 ve üzeri olanları süz. Sonucu foreach ile gez ve Console.WriteLine(e.Name) ile isimlerini yazdır.
Örnek çözümü göster
var wellPaid = from e in employees where e.Salary >= 5500 select e; ile sorguyu yaz. Sonra foreach (var e in wellPaid) { Console.WriteLine(e.Name); } ile yazdır.
Örnek çözüm:
using System;
using System.Collections.Generic;
using System.Linq;
class Employee
{
public string Name { get; set; }
public string Department { get; set; }
public decimal Salary { get; set; }
}
class Program
{
static void Main()
{
var employees = new List<Employee>
{
new Employee { Name = "Ayşe", Department = "Satış", Salary = 5000 },
new Employee { Name = "Mehmet", Department = "IT", Salary = 7000 },
new Employee { Name = "Zeynep", Department = "Satış", Salary = 5500 },
new Employee { Name = "Alex", Department = "IT", Salary = 6500 }
};
var wellPaid = from e in employees
where e.Salary >= 5500
select e;
foreach (var e in wellPaid)
{
Console.WriteLine(e.Name);
}
}
}
Uygulama Çalışan raporunu sırala ve yazdır
Yüksek maaşlı çalışanları orderby e.Department, e.Salary descending ile bölüme göre artan, maaşa göre azalan sırala. foreach ile gez ve her çalışan için Console.WriteLine($"{e.Department} - {e.Name}: {e.Salary}") yazdır.
Örnek çözümü göster
{e.Salary}"); } ile yazdır.
Örnek çözüm:
using System;
using System.Collections.Generic;
using System.Linq;
class Employee
{
public string Name { get; set; }
public string Department { get; set; }
public decimal Salary { get; set; }
}
class Program
{
static void Main()
{
var employees = new List<Employee>
{
new Employee { Name = "Ayşe", Department = "Satış", Salary = 5000 },
new Employee { Name = "Mehmet", Department = "IT", Salary = 7000 },
new Employee { Name = "Zeynep", Department = "Satış", Salary = 5500 },
new Employee { Name = "Alex", Department = "IT", Salary = 6500 }
};
var report = from e in employees
where e.Salary >= 5500
orderby e.Department, e.Salary descending
select e;
foreach (var e in report)
{
Console.WriteLine($"{e.Department} - {e.Name}: {e.Salary}");
}
}
}
Kendini test et
-
Bir sorguda sıralama hangi yan tümceyle yapılır?
Cevabı göster
orderby — Doğru. orderby ile sıralama yapılır.
-
Yan tümceyi konumuna eşle
- from
- Başlangıç
- where
- Süzme
- orderby
- Sıralama
- select
- Sonuç
Sıradaki ders: Expression<T>