using System.Collections.Generic;
public int No { get; set; }
public string Adi { get; set; }
public string Soyadi { get; set; }
public int Sinif { get; set; }
public string Cinsiyet { get; set; }
public DateTime DogumTarihi { get; set; }
public int Yasi { get; set; }
public int Kulup { get; set; }
public int[] Notlar { get; set; }
public double Ortalama { get; set; }
public bool Basarili { get; set; }
public int OkunanKitapSayisi { get; set; }
public int KayitNo { get; set; }
public string Adi { get; set; }
public string Sorumlu { get; set; }
private static List<Ogrenci> OgrencileriGetir()
List<Ogrenci> Ogrenciler = new List<Ogrenci>();
Ogrenciler.Add(new Ogrenci() { No = 2, Adi = "Tuncay", Soyadi = "Çağrı", Cinsiyet = "Erkek",
DogumTarihi = new DateTime(2002, 2, 27), Sinif = 4, Kulup = 0,
OkunanKitapSayisi=11, Notlar = new int[] { 75, 70, 75 }});
Ogrenciler.Add(new Ogrenci() { No = 4, Adi = "Jale", Soyadi = "İkinci", Cinsiyet = "Bayan",
DogumTarihi = new DateTime(1970, 1, 28), Sinif = 3, Kulup = 1,
OkunanKitapSayisi = 7, Notlar = new int[] { 100, 95, 97, 96 } });
Ogrenciler.Add(new Ogrenci() { No = 7, Adi = "Tekin", Soyadi = "Uğurlu", Cinsiyet = "Erkek",
DogumTarihi = new DateTime(1955, 3, 26), Sinif = 1, Kulup = 1,
OkunanKitapSayisi = 4, Notlar = new int[] { 30, 40, 20 } });
Ogrenciler.Add(new Ogrenci() { No = 8, Adi = "Mesut", Soyadi = "Bahtiyar", Cinsiyet = "Erkek",
DogumTarihi = new DateTime(1980, 4, 25), Sinif = 4, Kulup = 1,
OkunanKitapSayisi = 8, Notlar = new int[] { 70, 10, 30 } });
Ogrenciler.Add(new Ogrenci() { No = 12, Adi = "Veli", Soyadi = "Canlı", Cinsiyet = "Erkek",
DogumTarihi = new DateTime(1993, 5, 24), Sinif = 4, Kulup = 2,
OkunanKitapSayisi = 8, Notlar = new int[] { 80, 40, 10 } });
Ogrenciler.Add(new Ogrenci() { No = 6, Adi = "Ahmet", Soyadi = "Geçe", Cinsiyet = "Erkek",
DogumTarihi = new DateTime(1958, 6, 23), Sinif = 2, Kulup = 2,
OkunanKitapSayisi = 9, Notlar = new int[] { 70, 80, 80 } });
Ogrenciler.Add(new Ogrenci() { No = 15, Adi = "Fatma", Soyadi = "Teyze", Cinsiyet = "Bayan",
DogumTarihi = new DateTime(1972, 7, 22), Sinif = 3, Kulup = 1,
OkunanKitapSayisi = 12, Notlar = new int[] { 70, 98, 97, 92 } });
Ogrenciler.Add(new Ogrenci() { No = 14, Adi = "Mehmet", Soyadi = "Emre", Cinsiyet = "Erkek",
DogumTarihi = new DateTime(1970, 8, 21), Sinif = 4, Kulup = 0,
OkunanKitapSayisi = 7, Notlar = new int[] { 80, 22, 97 } });
Ogrenciler.Add(new Ogrenci() { No = 3, Adi = "Hale", Soyadi = "Birinci", Cinsiyet = "Bayan",
DogumTarihi = new DateTime(1982, 9, 20), Sinif = 2, Kulup = 1,
OkunanKitapSayisi = 11, Notlar = new int[] { 20, 40, 10, 30 } });
Ogrenciler.Add(new Ogrenci() { No = 13, Adi = "Ayşe", Soyadi = "Hanım", Cinsiyet = "Bayan",
DogumTarihi = new DateTime(1983, 10, 19), Sinif = 2, Kulup = 1,
OkunanKitapSayisi = 5, Notlar = new int[] { 100, 40, 100 } });
Ogrenciler.Add(new Ogrenci() { No = 11, Adi = "Cevdet", Soyadi = "Döğer", Cinsiyet = "Erkek",
DogumTarihi = new DateTime(1967, 11, 18), Sinif = 3, Kulup = 2,
OkunanKitapSayisi = 7, Notlar = new int[] { 20, 0, 30, 15 } });
Ogrenciler.Add(new Ogrenci() { No = 1, Adi = "Nuri", Soyadi = "Babayiğit", Cinsiyet = "Erkek",
DogumTarihi = new DateTime(1998, 12, 17), Sinif = 2, Kulup = 2,
OkunanKitapSayisi = 6, Notlar = new int[] { 55, 75, 65 } });
Ogrenciler.Add(new Ogrenci() { No = 5, Adi = "Kenan", Soyadi = "Oran", Cinsiyet = "Erkek",
DogumTarihi = new DateTime(1961, 1, 16), Sinif = 1, Kulup = 0,
OkunanKitapSayisi = 9, Notlar = new int[] { 50, 70, 80 } });
Ogrenciler.Add(new Ogrenci() { No = 9, Adi = "Lale", Soyadi = "Üçüncü", Cinsiyet = "Bayan",
DogumTarihi = new DateTime(1990, 2, 15), Sinif = 3, Kulup = 0,
OkunanKitapSayisi = 6, Notlar = new int[] { 20, 0, 30 } });
Ogrenciler.Add(new Ogrenci() { No = 10, Adi = "Erhan", Soyadi = "Erkanlı", Cinsiyet = "Erkek",
DogumTarihi = new DateTime(1958, 3, 14), Sinif = 1, Kulup = 1,
OkunanKitapSayisi = 7, Notlar = new int[] { 90, 90, 90, 90 } });
Ogrenciler.Add(new Ogrenci() { No = 16, Adi = "Erhan", Soyadi = "Fidan", Cinsiyet = "Erkek",
DogumTarihi = new DateTime(1968, 4, 13), Sinif = 2, Kulup = 1,
OkunanKitapSayisi = 8, Notlar = new int[] { 95, 70, 100, 80 } });
Ogrenciler.Add(new Ogrenci() { No = 17, Adi = "Erhan", Soyadi = "Çelik", Cinsiyet = "Erkek",
DogumTarihi = new DateTime(1978, 5, 12), Sinif = 3, Kulup = 1,
OkunanKitapSayisi = 7, Notlar = new int[] { 90, 55, 90 } });
foreach (var Ogrenci in Ogrenciler)
Ogrenci.Ortalama = Ogrenci.Notlar.Average();
Ogrenci.Basarili = Ogrenci.Ortalama >= 55;
Ogrenci.Yasi = DateTime.Now.Year - Ogrenci.DogumTarihi.Year;
private static List<Kulup> KulupleriGetir()
List<Kulup> Kulupler = new List<Kulup>();
Kulupler.Add(new Kulup() { KayitNo = 0, Adi = "Gezi", Sorumlu = "Tanju Bülbül" });
Kulupler.Add(new Kulup() { KayitNo = 0, Adi = "Gezi2", Sorumlu = "Tanju Bülbül2" });
Kulupler.Add(new Kulup() { KayitNo = 1, Adi = "Tiyatro", Sorumlu = "Metin Öztürk" });
Kulupler.Add(new Kulup() { KayitNo = 2, Adi = "Müzik", Sorumlu = "Nuri Sezer" });
Kulupler.Add(new Kulup() { KayitNo = 3, Adi = "Kitap", Sorumlu = "Kazım Ünlüol" });
public static void Main(string[] args)
var Kulupler = KulupleriGetir();
var Ogrenciler = OgrencileriGetir();
Console.WriteLine("*************************************** JOİN***************************");
var OgrencilerVeKulupSorumlulari =
from ogrenci in Ogrenciler
join kulup in Kulupler on ogrenci.Kulup equals kulup.KayitNo
select new { OgrenciAdi = ogrenci.Adi, KulupAdi = kulup.Adi, KulupSorumlusu = kulup.Sorumlu };
Console.WriteLine("Öğrenciler ve üye oldukları kulüplerin rehber öğretmenleri :");
foreach (var nesne in OgrencilerVeKulupSorumlulari)
Console.WriteLine("{0} isimli öğrenci {1} kulübüne üyedir. Kulübün rehber öğretmeni: {2}.",
Console.WriteLine("*************************************** SELECT MANY***************************");
var OgrencilerVeKulupSorumlulari2 = from ogrenci in Ogrenciler
where ogrenci.Kulup == kulup.KayitNo
OgrenciAdi = ogrenci.Adi,
KulupSorumlusu = kulup.Sorumlu
Console.WriteLine("Öğrenciler ve üye oldukları kulüplerin rehber öğretmenleri :");
foreach (var nesne in OgrencilerVeKulupSorumlulari2)
Console.WriteLine("{0} isimli öğrenci {1} kulübüne üyedir. Kulübün rehber öğretmeni: {2}.",
Console.WriteLine("***************************************GROUP JOİN***************************");
var KuluplerVeOgrencileri =
Kulupler.GroupJoin(Ogrenciler,
ogrenci => ogrenci.Kulup,
(kulup, KuluptekiOgrenciler) => new
OgrenciSayisi = KuluptekiOgrenciler.Count(),
foreach (var kulupOgrenci in KuluplerVeOgrencileri)
Console.WriteLine("{0} nolu {1} kulübüne üye {2} öğrenci var. Öğrenciler :",
kulupOgrenci.OgrenciSayisi);
foreach ( var ogr in kulupOgrenci.KuluptekiOgrenciler)
Console.WriteLine(ogr.Adi);
Console.WriteLine("***************************************GROUP JOİN plus WHERE***************************");
var KuluplerVeOgrencileri2 =
Kulupler.GroupJoin(Ogrenciler,
ogrenci => ogrenci.Kulup,
(kulup, KuluptekiOgrenciler) => new
OgrenciSayisi = KuluptekiOgrenciler.Count(),
).Where( kuluplerOgrenciler => kuluplerOgrenciler.OgrenciSayisi > 4 );
foreach (var kulupOgrenci in KuluplerVeOgrencileri2)
Console.WriteLine("{0} nolu {1} kulübüne üye {2} öğrenci var. Öğrenciler :",
kulupOgrenci.OgrenciSayisi);
foreach ( var ogr in kulupOgrenci.KuluptekiOgrenciler)
Console.WriteLine(ogr.Adi);
Console.WriteLine("***************************************GROUP JOİN plus WHERE2***************************");
var KuluplerVeOgrencileri3 =
Kulupler.GroupJoin(Ogrenciler,
ogrenci => ogrenci.Kulup,
(kulup, KuluptekiOgrenciler) => new
OgrenciSayisi = KuluptekiOgrenciler.Count(),
KuluptekiOgrenciler = KuluptekiOgrenciler.Where(ogr=> ogr.Cinsiyet == "Bayan" )
).Where( kuluplerOgrenciler => kuluplerOgrenciler.OgrenciSayisi > 4 );
foreach (var kulupOgrenci in KuluplerVeOgrencileri3)
Console.WriteLine("{0} nolu {1} kulübüne üye {2} öğrenci var. Yalnızca Bayan Öğrenci Listesi:",
kulupOgrenci.OgrenciSayisi);
foreach ( var ogr in kulupOgrenci.KuluptekiOgrenciler)
Console.WriteLine(ogr.Adi);
Console.WriteLine("***************************************GROUP JOİN plus WHERE3***************************");
var KuluplerVeOgrencileri4 =
Kulupler.GroupJoin(Ogrenciler,
ogrenci => ogrenci.Kulup,
(kulup, KuluptekiOgrenciler) => new
OgrenciSayisi = KuluptekiOgrenciler.Count(),
KuluptekiOgrenciler = KuluptekiOgrenciler.Where(ogr=> ogr.Cinsiyet == "Bayan" )
).Where( kuluplerOgrenciler => kuluplerOgrenciler.OgrenciSayisi > 3 && kuluplerOgrenciler.KulupNo ==0 );
foreach (var kulupOgrenci in KuluplerVeOgrencileri4)
Console.WriteLine("{0} nolu {1} kulübüne üye {2} öğrenci var. Yalnızca Bayan Öğrenci Listesi:",
kulupOgrenci.OgrenciSayisi);
foreach ( var ogr in kulupOgrenci.KuluptekiOgrenciler)
Console.WriteLine(ogr.Adi);
Console.WriteLine("***************************************Without Left Outer Join***************************");
var KuluplerVeOgrencileri5 =
join Ogrenci in Ogrenciler on Kulup.KayitNo equals Ogrenci.Kulup into KulupVeOgrencileri
from Ogrenci2 in KulupVeOgrencileri
Ogrenci = Ogrenci2 == null ? "(Öğrenci yok)" : Ogrenci2.Adi,
foreach (var Satir in KuluplerVeOgrencileri5)
Console.WriteLine("{0}, {1} kulübüne üye.", Satir.Ogrenci, Satir.KulupAdi);
Console.WriteLine("*************************************** Left Outer Join***************************");
var KuluplerVeOgrencileri6 =
join Ogrenci in Ogrenciler on Kulup.KayitNo equals Ogrenci.Kulup into KulupVeOgrencileri
from Ogrenci2 in KulupVeOgrencileri.DefaultIfEmpty()
Ogrenci = Ogrenci2 == null ? "(Öğrenci yok)" : Ogrenci2.Adi,
foreach (var Satir in KuluplerVeOgrencileri6)
Console.WriteLine("{0}, {1} kulübüne üye.", Satir.Ogrenci, Satir.KulupAdi);