Soru
Programcıya bir veritabanında olduğu farz edilen ve bir personel listesi (Personel.Liste()) veriliyor. Ardından, yapılması istenen çeşitli sorgulamaları Linq ile yaparak yazdırması isteniyor.
Örnek
Girdi | Çıktı |
---|---|
Talep: Adı E ile başlayan personeller Liste: Ali, Ece, Efe, Neşe, Zeynep |
Sonuç: Ece, Efe |
Çözüm - C#
using System;
using System.Collections.Generic;
namespace CodingChallenges
{
class Personel
{
public string AdSoyad { get; set; }
public string Bolum { get; set; }
public int Maas { get; set; }
public DateTime Baslangic { get; set; }
public static List<Personel> Liste()
{
List<Personel> personeller = new List<Personel>
{
new Personel {AdSoyad = "Ali Üstün", Bolum = "Lojistik", Maas = 4500, Baslangic = new DateTime(2018, 10, 18)},
new Personel {AdSoyad = "Ece Ölür", Bolum = "Muhasebe", Maas = 5000, Baslangic = new DateTime(2019, 01, 28)},
new Personel {AdSoyad = "Burak Aslan", Bolum = "Yönetim", Maas = 6000, Baslangic = new DateTime(2017, 03, 11)},
new Personel {AdSoyad = "Barış Bilir", Bolum = "Muhasebe", Maas = 5000, Baslangic = new DateTime(2018, 02, 16)},
new Personel {AdSoyad = "Neşe Gider", Bolum = "Lojistik", Maas = 4500, Baslangic = new DateTime(2019, 03, 30)},
new Personel {AdSoyad = "Metin Kalır", Bolum = "Yönetim", Maas = 6000, Baslangic = new DateTime(2018, 11, 03)},
new Personel {AdSoyad = "Ali Esten", Bolum = "Lojistik", Maas = 4500, Baslangic = new DateTime(2016, 07, 01)},
new Personel {AdSoyad = "Merve Uzan", Bolum = "Muhasebe", Maas = 5000, Baslangic = new DateTime(2017, 12, 30)},
new Personel {AdSoyad = "Eslem Bilir", Bolum = "Muhasebe", Maas = 5000, Baslangic = new DateTime(2017, 12, 30)}
};
return personeller;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
namespace CodingChallenges
{
class Program
{
public static void Main()
{
// Personel listesi yükleniyor
List<Personel> personeller = Personel.Liste();
// 1. Adı 'Ali' olanları bulun
Console.WriteLine("1. Adı 'Ali' olanlar");
var adAra = from ad in personeller
where ad.AdSoyad.StartsWith("Ali")
select ad;
// var adAraAlt = personeller.Where(p => p.ToString().StartsWith("Ali"));
foreach (Personel kisi in adAra)
Console.WriteLine(kisi.AdSoyad);
// 2. Baş harfi 'B' olanları bulun
Console.WriteLine(Environment.NewLine + "2. Baş harfi 'B' olanlar");
var bHarfleBaslayanlar = from bHarfli in personeller
where bHarfli.AdSoyad.StartsWith("B")
select bHarfli;
// var bHarfleBaslayanlarAlt = personeller.Where(p => p.AdSoyad.StartsWith("B"));
foreach (Personel kisi in bHarfleBaslayanlar)
Console.WriteLine(kisi.AdSoyad);
// 3. Bölümü muhasebe olanları bulun
Console.WriteLine(Environment.NewLine + "3. Bölümü muhasebe olanlar");
var muhasebeBolumu = from muhasebeciler in personeller
where muhasebeciler.Bolum == "Muhasebe"
select muhasebeciler;
foreach (Personel kisi in muhasebeBolumu)
Console.WriteLine(kisi.AdSoyad);
// 4. Maaşı 5500'ün üstünde olanları bulun
Console.WriteLine(Environment.NewLine + "4. Maaşı 5500'ün üstünde olanlar");
var maas4400Ustu = from para in personeller
where para.Maas >= 5500
select para;
// var maas4400UstuAlt = personeller.Where(p => p.Maas >= 5500);
foreach (Personel kisi in maas4400Ustu)
Console.WriteLine(kisi.AdSoyad);
// 5. 2018 sonrası girişlilerin ad soyad ve departmanlarını bulun
Console.WriteLine(Environment.NewLine + "5. 2018 sonrası girişlilerin ad soyad ve departmanları");
var iseBaslangic2019 = from isGiris in personeller
where isGiris.Baslangic >= new DateTime(2018, 1, 1)
select isGiris;
// var iseBaslangic2019Alt = personeller.Where(p => p.Baslangic >= new DateTime(2018, 1, 1));
foreach (Personel kisi in iseBaslangic2019)
Console.WriteLine(kisi.AdSoyad + "," + kisi.Bolum);
Console.Read();
}
}
}