Kurumsal Otomasyon Çözümlerinde Zirve

C# Linq Uygulamaları Group Join

Örnek uygulamada ana koleksiyondaki telefon numaraları ile o numaraya ait sipariş isimlerini aynı listeye yazdırmak istiyorum. Kodu dikkatlice takip ediniz.

using System.Collections.Generic;//Ekleyin

public partial class Default7 : System.Web.UI.Page
{
protected void Button1_Click(object sender, EventArgs e)
{
TelListesi[] Teller = new TelListesi[3];
//

Teller[0] = new TelListesi();

Teller[0].TelNo = “0312 231 54 59”; Teller[0].Adres = “KIZILAY”;
//
Teller[1] = new TelListesi();
Teller[1].TelNo = “0312 430 40 16”; Teller[1].Adres = “ÇANKAYA”;
//
Teller[2] = new TelListesi();
Teller[2].TelNo = “0312 430 40 17”; Teller[02].Adres = “MALTEPE”;
//
SiparisListesi[] Siparis = new SiparisListesi[6];
//
Siparis[0] = new SiparisListesi(); Siparis[0].Tutar = 200;
Siparis[0].Tarih = DateTime.Parse(” 05/05/2008″); Siparis[0].SiparisAdi = “PİZZA”;Siparis[0].AltListe = Teller[1];
//
Siparis[1] = new SiparisListesi(); Siparis[1].Tutar = 600;
Siparis[1].Tarih = DateTime.Parse(” 22 / 11 / 2008″); Siparis[1].SiparisAdi = “SOSİS”;Siparis[1].AltListe = Teller[0];
//
Siparis[2] = new SiparisListesi(); Siparis[2].Tutar = 750;
Siparis[2].Tarih = DateTime.Parse(” 22 / 11 / 2008″); Siparis[2].SiparisAdi = “SOSİS”;Siparis[2].AltListe = Teller[1];
//
Siparis[3] = new SiparisListesi(); Siparis[3].Tutar = 125;
Siparis[3].Tarih = DateTime.Parse(” 20 / 11 / 2008″); Siparis[3].SiparisAdi = “SİMİT”;Siparis[3].AltListe = Teller[2];
//
Siparis[4] = new SiparisListesi(); Siparis[4].Tutar = 400;
Siparis[4].Tarih = DateTime.Parse(” 18 / 11 / 2008″); Siparis[4].SiparisAdi = “PİZZA”;Siparis[4].AltListe = Teller[1];
//
Siparis[5] = new SiparisListesi(); Siparis[5].Tutar = 1200;
Siparis[5].Tarih = DateTime.Parse(” 22 / 1 / 2008″); Siparis[5].SiparisAdi = “SİMİT”;Siparis[5].AltListe = Teller[0];
//
List TelListe = new List();
TelListe.AddRange(Teller);
//
List SipListe = new List();
SipListe.AddRange(Siparis);

//
var Sonuc = from Eleman in TelListe
join AltEleman in SipListe on Eleman equals AltEleman.AltListe into SanalAd
select new { TelNo = Eleman.TelNo, Degerler = SanalAd };

foreach (var Deg in Sonuc)
{
ListBox1.Items.Add(Deg.TelNo);
foreach (SiparisListesi ADeg in Deg.Degerler)
{
ListBox1.Items.Add(“—” + ADeg.SiparisAdi);
}
}
}
}
GroupJoin

Mantık olarak Join ile aynı şekilde çalışmakla beraber, alt koleksiyondan değerleri gruplama özelliği vardır. Bu sayede ana koleksiyondaki bir değerin alt koleksiyondaki tüm değerlerine kolayca erişebilirsiniz.

public class TelListesi
{
public string TelNo { get; set; }
public string Adres { get; set; }
}

İkinci Class

public class SiparisListesi
{
public DateTime Tarih{ get; set; }
public string SiparisAdi { get; set;}
public double Tutar { get; set; }
private TelListesi Deger=new TelListesi();

public TelListesi AltListe//İlk Class Burada Olacak Önemli
{
get
{
return Deger;
}

set
{
Deger = value;
}
}
}

Yorum Yapılmamış

Bir cevap yazın