Yazılım.
CevapSitesi.com Beta!
Çözüm Noktası
Facebook, Twitter, Google+ veya e-posta ile paylaşın.
| Sorular | Makaleler | Üyeler | Etiketler  | İletişim
Soru sormak ya da cevap vermek için;
giriş yapın veya üye olun.

Sosyal medya hesaplarınızla da giriş yapabilirsiniz.

Makale Geçmişi

«« Makaleye geri dön
20.06.16 21:22
LINQ - Birleştirme (Join) İşlemleri
Bu makalede kullanılan veri kaynağını görmek için tıklayın . Join İle Çapraz Birleştirme (Cross Join) Örneği Join cümleciği, iki veri kaynağındaki satırları aynı olan bir alan değeri kullanarak birleştirip tek bir liste oluşturmak için kullanılır. Bu örnek öğrenci bilgilerinden oluşan bir veri kaynağındaki kayıtlar ile öğrenci kulübü bilgilerinden oluşan bir başka veri kaynağını kulüp numarası üzerinden birleştirerek yeni bir isimsiz sınıf listesi oluşturarak yeni listeyi çıktıya yazar. var Kulupler = KulupleriGetir(); var Ogrenciler = OgrencileriGetir(); 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}.", Nesne.OgrenciAdi, Nesne.KulupAdi, Nesne.KulupSorumlusu); } Console.ReadLine(); Örneğin çıktısı şöyle olacaktır : Öğrenciler ve üye oldukları kulüplerin rehber öğretmenleri : Tuncay isimli öğrenci Gezi kulübüne üyedir. Kulübün rehber öğretmeni: Tanju Bülbül. Jale isimli öğrenci Tiyatro kulübüne üyedir. Kulübün rehber öğretmeni: Metin Öztürk. Tekin isimli öğrenci Tiyatro kulübüne üyedir. Kulübün rehber öğretmeni: Metin Öztürk. Mesut isimli öğrenci Tiyatro kulübüne üyedir. Kulübün rehber öğretmeni: Metin Öztürk. Veli isimli öğrenci Müzik kulübüne üyedir. Kulübün rehber öğretmeni: Nuri Sezer. Ahmet isimli öğrenci Müzik kulübüne üyedir. Kulübün rehber öğretmeni: Nuri Sezer. Fatma isimli öğrenci Tiyatro kulübüne üyedir. Kulübün rehber öğretmeni: Metin Öztürk. Mehmet isimli öğrenci Gezi kulübüne üyedir. Kulübün rehber öğretmeni: Tanju Bülbül. Hale isimli öğrenci Tiyatro kulübüne üyedir. Kulübün rehber öğretmeni: Metin Öztürk. Ayşe isimli öğrenci Tiyatro kulübüne üyedir. Kulübün rehber öğretmeni: Metin Öztürk. Cevdet isimli öğrenci Müzik kulübüne üyedir. Kulübün rehber öğretmeni: Nuri Sezer. Nuri isimli öğrenci Müzik kulübüne üyedir. Kulübün rehber öğretmeni: Nuri Sezer. Kenan isimli öğrenci Gezi kulübüne üyedir. Kulübün rehber öğretmeni: Tanju Bülbül. Lale isimli öğrenci Gezi kulübüne üyedir. Kulübün rehber öğretmeni: Tanju Bülbül. Erhan isimli öğrenci Tiyatro kulübüne üyedir. Kulübün rehber öğretmeni: Metin Öztürk. Erhan isimli öğrenci Tiyatro kulübüne üyedir. Kulübün rehber öğretmeni: Metin Öztürk. Erhan isimli öğrenci Tiyatro kulübüne üyedir. Kulübün rehber öğretmeni: Metin Öztürk. Aynı örnek, LINQ Yöntem Sözdizimi (LINQ Method Syntax) ile şu şekilde yazılabilir: var Ogrenciler = OgrencileriGetir(); var Kulupler = KulupleriGetir(); var OgrencilerVeKulupSorumlulari = Ogrenciler.SelectMany(Ogrenci => Kulupler.Where(Kulup => Kulup.KayitNo == Ogrenci.Kulup) , (Ogrenci, Kulup) => 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}.", Nesne.OgrenciAdi, Nesne.KulupAdi, Nesne.KulupSorumlusu); } Console.ReadLine(); Join İle Birleştirerek Gruplar Oluşturma Join cümleciği, iki veri kaynağındaki satırları aynı olan bir alan değeri kullanarak birleştirip tek bir liste oluşturmak için kullanılır. Bu örnek öğrenci bilgilerinden oluşan bir veri kaynağındaki kayıtlar ile öğrenci kulübü bilgilerinden oluşan bir başka veri kaynağını kulüp numarası üzerinden into yardımıyla grup olarak birleştirir. Daha sonra grup bilgilerinden oluşturduğu bir isimsiz sınıf listesini çıktıya yazar. var Kulupler = KulupleriGetir(); var Ogrenciler = OgrencileriGetir(); var KuluplerVeOgrencileri = from Kulup in Kulupler join Ogrenci in Ogrenciler on Kulup.KayitNo equals Ogrenci.Kulup into KulupVeOgrencileri select new { KulupVeOgrencileri = KulupVeOgrencileri, OgrenciSayisi = KulupVeOgrencileri.Count(), KulupAdi = Kulup.Adi }; foreach (var Satir in KuluplerVeOgrencileri) { Console.WriteLine("{0} kulübüne üye {1} öğrenci var. Öğrenciler :", Satir.KulupAdi, Satir.OgrenciSayisi); foreach (var a in Satir.KulupVeOgrencileri) { Console.WriteLine(a.Adi); } } Console.ReadLine(); Örneğin çıktısı şöyle olacaktır : Gezi kulübüne üye 4 öğrenci var. Öğrenciler : Tuncay Mehmet Kenan Lale Tiyatro kulübüne üye 9 öğrenci var. Öğrenciler : Jale Tekin Mesut Fatma Hale Ayşe Erhan Erhan Erhan Müzik kulübüne üye 4 öğrenci var. Öğrenciler : Veli Ahmet Cevdet Nuri Kitap kulübüne üye 0 öğrenci var. Öğrenciler : Aynı örnek, LINQ Yöntem Sözdizimi (LINQ Method Syntax) ile şu şekilde yazılabilir: var Kulupler = KulupleriGetir(); var Ogrenciler = OgrencileriGetir(); var KuluplerVeOgrencileri = Kulupler.GroupJoin(Ogrenciler, Kulup => Kulup.KayitNo, Ogrenci => Ogrenci.Kulup, (Kulup, KulupVeOgrencileri) => new { KulupVeOgrencileri = KulupVeOgrencileri, OgrenciSayisi = KulupVeOgrencileri.Count(), KulupAdi = Kulup.Adi }); foreach (var Satir in KuluplerVeOgrencileri) { Console.WriteLine("{0} kulübüne üye {1} öğrenci var. Öğrenciler :", Satir.KulupAdi, Satir.OgrenciSayisi); foreach (var a in Satir.KulupVeOgrencileri) { Console.WriteLine(a.Adi); } } Console.ReadLine(); Join İle Çapraz Birleştirme (Cross Join) ve Grup Birleştirmesinin Birlikte Kullanımı Örneği Join cümleciği, iki veri kaynağındaki satırları aynı olan bir alan değeri kullanarak birleştirip tek bir liste oluşturmak için kullanılır. Bu örnek öğrenci bilgilerinden oluşan bir veri kaynağındaki kayıtlar ile öğrenci kulübü bilgilerinden oluşan bir başka veri kaynağını kulüp numarası üzerinden into yardımıyla grup olarak birleştirir. Daha sonra grup bilgilerinden oluşturduğu bir isimsiz sınıf listesini çıktıya yazar. var Kulupler = KulupleriGetir(); var Ogrenciler = OgrencileriGetir(); var KuluplerVeOgrencileri = from Kulup in Kulupler join Ogrenci in Ogrenciler on Kulup.KayitNo equals Ogrenci.Kulup into KulupVeOgrencileri select new { KulupVeOgrencileri = KulupVeOgrencileri, OgrenciSayisi = KulupVeOgrencileri.Count(), KulupAdi = Kulup.Adi }; foreach (var Satir in KuluplerVeOgrencileri) { Console.WriteLine("{0} kulübüne üye {1} öğrenci var. Öğrenciler :", Satir.KulupAdi, Satir.OgrenciSayisi); foreach (var a in Satir.KulupVeOgrencileri) { Console.WriteLine(a.Adi); } } Console.ReadLine(); Örneğin çıktısı şöyle olacaktır : Gezi kulübüne üye 4 öğrenci var. Öğrenciler : Tuncay Mehmet Kenan Lale Tiyatro kulübüne üye 9 öğrenci var. Öğrenciler : Jale Tekin Mesut Fatma Hale Ayşe Erhan Erhan Erhan Müzik kulübüne üye 4 öğrenci var. Öğrenciler : Veli Ahmet Cevdet Nuri Kitap kulübüne üye 0 öğrenci var. Öğrenciler : Aynı örnek, LINQ Yöntem Sözdizimi (LINQ Method Syntax) ile şu şekilde yazılabilir: var Kulupler = KulupleriGetir(); var Ogrenciler = OgrencileriGetir(); var KuluplerVeOgrencileri = Kulupler.GroupJoin(Ogrenciler, Kulup => Kulup.KayitNo, Ogrenci => Ogrenci.Kulup, (Kulup, KulupVeOgrencileri) => new { KulupVeOgrencileri = KulupVeOgrencileri, OgrenciSayisi = KulupVeOgrencileri.Count(), KulupAdi = Kulup.Adi }); foreach (var Satir in KuluplerVeOgrencileri) { Console.WriteLine("{0} kulübüne üye {1} öğrenci var. Öğrenciler :", Satir.KulupAdi, Satir.OgrenciSayisi); foreach (var a in Satir.KulupVeOgrencileri) { Console.WriteLine(a.Adi); } } Console.ReadLine(); Join İle Hariçte Kalanlar Dahil Birleştirme (Left Outer Join) Örneği Join cümleciği, iki veri kaynağındaki satırları aynı olan bir alan değeri kullanarak birleştirip tek bir liste oluşturmak için kullanılır. Normal şartlarda bir veri kaynağındaki ortak alan üzerinden birleştirilemeyen (ortak alan değeri bulunmayan) satırlar dışarda kalır. Ancak DefaultIfEmpty metodu ile eşleme bulunamayan satırlar için varsayılan değer kullanılarak bu satırlarda listeye eklenebilir. Bu örnek öğrenci bilgilerinden oluşan bir veri kaynağındaki kayıtlar ile öğrenci kulübü bilgilerinden oluşan bir başka veri kaynağının elemanlarını kulüp numarası üzerinden birleştirerek oluşturduğu öğrencilerden oluşan kulüp gruplarının elemanlarını çıktıya yazar. Örnekte ortak alan (kulüp numarası) üzerinden eşleşmeyen kulüp satırları da (Kitap Kulübünde hiç üye yok) DefaultIfEmpty (Boş olanlar için varsayılan değeri kullan) yöntemi yardımıyla çıktı listesine dahil edilmiştir. var Kulupler = KulupleriGetir(); var Ogrenciler = OgrencileriGetir(); var KuluplerVeOgrencileri = from Kulup in Kulupler join Ogrenci in Ogrenciler on Kulup.KayitNo equals Ogrenci.Kulup into KulupVeOgrencileri from Ogrenci in KulupVeOgrencileri.DefaultIfEmpty() select new { Ogrenci = Ogrenci == null ? "(Öğrenci yok)" : Ogrenci.Adi, KulupAdi = Kulup.Adi }; foreach (var Satir in KuluplerVeOgrencileri) { Console.WriteLine("{0}, {1} kulübüne üye.", Satir.Ogrenci, Satir.KulupAdi); } Console.ReadLine(); Örneğin çıktısı şöyle olacaktır : Tuncay, Gezi kulübüne üye. Mehmet, Gezi kulübüne üye. Kenan, Gezi kulübüne üye. Lale, Gezi kulübüne üye. Jale, Tiyatro kulübüne üye. Tekin, Tiyatro kulübüne üye. Mesut, Tiyatro kulübüne üye. Fatma, Tiyatro kulübüne üye. Hale, Tiyatro kulübüne üye. Ayşe, Tiyatro kulübüne üye. Erhan, Tiyatro kulübüne üye. Erhan, Tiyatro kulübüne üye. Erhan, Tiyatro kulübüne üye. Veli, Müzik kulübüne üye. Ahmet, Müzik kulübüne üye. Cevdet, Müzik kulübüne üye. Nuri, Müzik kulübüne üye. (Öğrenci yok), Kitap kulübüne üye. Kaynak: https://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b Diğer LINQ Makaleleri: LINQ Örnekleri makalelerinde kullanılan verikaynağı LINQ (Language Integrated Query - Dile Entegre Edilmiş Sorgu) Nedir? LINQ Sağlayıcıları (LINQ Providers) LINQ Yöntem Sözdizimi (LINQ Method Syntax) LINQ - Temel İşlemler - Bir Veri Kaynağı Bildirme ve Seçme (From ve Select) LINQ - Temel İşlemler - Süzme (Filtering) LINQ - Temel İşlemler - Sıralama (Ordering) LINQ - Temel İşlemler - Gruplama (Grouping) LINQ - Temel İşlemler - Birleştirme (Joining) LINQ - Deferred Execution - Ertelenmiş Çalıştırma LINQ - Immediate Execution - Anında Çalıştırma LINQ - Query Reuse - Sorgunun Yeniden Kullanımı LINQ - Kısıtlama (Restriction) Kullanım Örnekleri LINQ - Yansıtma (Projection) - Select Kullanım Örnekleri LINQ - Yansıtma (Projection) - SelectMany Kullanım Örnekleri LINQ - Bölümleme (Partitioning) Örnekleri LINQ - Sıralama (Ordering) Örnekleri LINQ - Gruplama (Grouping) Örnekleri LINQ - Küme (Set) Örnekleri LINQ - Dönüşüm (Conversion) Örnekleri LINQ - Eleman (Element) Seçimi Örnekleri LINQ - Oluşturma (Generation) Örnekleri LINQ - Miktar Belirleyiciler (Quantifiers) Örnekleri LINQ - Yığın (Aggregate) Örnekleri LINQ - Birleştirme (Join) İşlemleri  (Bu makale) LINQ - Özel Dizilim (Custom Sequence) Örneği LINQ - Concat ve SequenceEqual İle Örnekle r
Ekleyen: canora
Değiştiren: canora
10.04.16 23:38
LINQ - Birleştirme (Join) İşlemleri
Bu makalede kullanılan veri kaynağını görmek için tıklayın . Join İle Çapraz Birleştirme (Cross Join) Örneği Join cümleciği, iki veri kaynağındaki satırları aynı olan bir alan değeri kullanarak birleştirip tek bir liste oluşturmak için kullanılır. Bu örnek öğrenci bilgilerinden oluşan bir veri kaynağındaki kayıtlar ile öğrenci kulübü bilgilerinden oluşan bir başka veri kaynağını kulüp numarası üzerinden birleştirerek yeni bir isimsiz sınıf listesi oluşturarak yeni listeyi çıktıya yazar. var Kulupler = KulupleriGetir (); var Ogrenciler = OgrencileriGetir (); 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}." , Nesne . OgrenciAdi , Nesne . KulupAdi , Nesne . KulupSorumlusu ); } Console.ReadLine(); Örneğin çıktısı şöyle olacaktır : Öğrenciler ve üye oldukları kulüplerin rehber öğretmenleri : Tuncay isimli öğrenci Gezi kulübüne üyedir. Kulübün rehber öğretmeni: Tanju Bülbül. Jale isimli öğrenci Tiyatro kulübüne üyedir. Kulübün rehber öğretmeni: Metin Öztürk. Tekin isimli öğrenci Tiyatro kulübüne üyedir. Kulübün rehber öğretmeni: Metin Öztürk. Mesut isimli öğrenci Tiyatro kulübüne üyedir. Kulübün rehber öğretmeni: Metin Öztürk. Veli isimli öğrenci Müzik kulübüne üyedir. Kulübün rehber öğretmeni: Nuri Sezer. Ahmet isimli öğrenci Müzik kulübüne üyedir. Kulübün rehber öğretmeni: Nuri Sezer. Fatma isimli öğrenci Tiyatro kulübüne üyedir. Kulübün rehber öğretmeni: Metin Öztürk. Mehmet isimli öğrenci Gezi kulübüne üyedir. Kulübün rehber öğretmeni: Tanju Bülbül. Hale isimli öğrenci Tiyatro kulübüne üyedir. Kulübün rehber öğretmeni: Metin Öztürk. Ayşe isimli öğrenci Tiyatro kulübüne üyedir. Kulübün rehber öğretmeni: Metin Öztürk. Cevdet isimli öğrenci Müzik kulübüne üyedir. Kulübün rehber öğretmeni: Nuri Sezer. Nuri isimli öğrenci Müzik kulübüne üyedir. Kulübün rehber öğretmeni: Nuri Sezer. Kenan isimli öğrenci Gezi kulübüne üyedir. Kulübün rehber öğretmeni: Tanju Bülbül. Lale isimli öğrenci Gezi kulübüne üyedir. Kulübün rehber öğretmeni: Tanju Bülbül. Erhan isimli öğrenci Tiyatro kulübüne üyedir. Kulübün rehber öğretmeni: Metin Öztürk. Erhan isimli öğrenci Tiyatro kulübüne üyedir. Kulübün rehber öğretmeni: Metin Öztürk. Erhan isimli öğrenci Tiyatro kulübüne üyedir. Kulübün rehber öğretmeni: Metin Öztürk. Aynı örnek, LINQ Yöntem Sözdizimi (LINQ Method Syntax) ile şu şekilde yazılabilir: var Ogrenciler = OgrencileriGetir (); var Kulupler = KulupleriGetir (); var OgrencilerVeKulupSorumlulari = Ogrenciler . SelectMany ( Ogrenci => Kulupler . Where ( Kulup => Kulup . KayitNo == Ogrenci . Kulup ) , ( Ogrenci , Kulup ) => 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}." , Nesne . OgrenciAdi , Nesne . KulupAdi , Nesne . KulupSorumlusu ); } Console.ReadLine(); Join İle Birleştirerek Gruplar Oluşturma Join cümleciği, iki veri kaynağındaki satırları aynı olan bir alan değeri kullanarak birleştirip tek bir liste oluşturmak için kullanılır. Bu örnek öğrenci bilgilerinden oluşan bir veri kaynağındaki kayıtlar ile öğrenci kulübü bilgilerinden oluşan bir başka veri kaynağını kulüp numarası üzerinden into yardımıyla grup olarak birleştirir. Daha sonra grup bilgilerinden oluşturduğu bir isimsiz sınıf listesini çıktıya yazar. var Kulupler = KulupleriGetir (); var Ogrenciler = OgrencileriGetir (); var KuluplerVeOgrencileri = from Kulup in Kulupler join Ogrenci in Ogrenciler on Kulup . KayitNo equals Ogrenci . Kulup into KulupVeOgrencileri select new { KulupVeOgrencileri = KulupVeOgrencileri , OgrenciSayisi = KulupVeOgrencileri . Count (), KulupAdi = Kulup . Adi }; foreach ( var Satir in KuluplerVeOgrencileri ) { Console . WriteLine ( "{0} kulübüne üye {1} öğrenci var. Öğrenciler :" , Satir . KulupAdi , Satir . OgrenciSayisi ); foreach ( var a in Satir . KulupVeOgrencileri ) { Console . WriteLine ( a . Adi ); } } Console.ReadLine(); Örneğin çıktısı şöyle olacaktır : Gezi kulübüne üye 4 öğrenci var. Öğrenciler : Tuncay Mehmet Kenan Lale Tiyatro kulübüne üye 9 öğrenci var. Öğrenciler : Jale Tekin Mesut Fatma Hale Ayşe Erhan Erhan Erhan Müzik kulübüne üye 4 öğrenci var. Öğrenciler : Veli Ahmet Cevdet Nuri Kitap kulübüne üye 0 öğrenci var. Öğrenciler : Aynı örnek, LINQ Yöntem Sözdizimi (LINQ Method Syntax) ile şu şekilde yazılabilir: var Kulupler = KulupleriGetir (); var Ogrenciler = OgrencileriGetir (); var KuluplerVeOgrencileri = Kulupler . GroupJoin ( Ogrenciler , Kulup => Kulup . KayitNo , Ogrenci => Ogrenci . Kulup , ( Kulup , KulupVeOgrencileri ) => new { KulupVeOgrencileri = KulupVeOgrencileri , OgrenciSayisi = KulupVeOgrencileri . Count (), KulupAdi = Kulup . Adi }); foreach ( var Satir in KuluplerVeOgrencileri ) { Console . WriteLine ( "{0} kulübüne üye {1} öğrenci var. Öğrenciler :" , Satir . KulupAdi , Satir . OgrenciSayisi ); foreach ( var a in Satir . KulupVeOgrencileri ) { Console . WriteLine ( a . Adi ); } } Console.ReadLine(); Join İle Çapraz Birleştirme (Cross Join) ve Grup Birleştirmesinin Birlikte Kullanımı Örneği Join cümleciği, iki veri kaynağındaki satırları aynı olan bir alan değeri kullanarak birleştirip tek bir liste oluşturmak için kullanılır. Bu örnek öğrenci bilgilerinden oluşan bir veri kaynağındaki kayıtlar ile öğrenci kulübü bilgilerinden oluşan bir başka veri kaynağını kulüp numarası üzerinden into yardımıyla grup olarak birleştirir. Daha sonra grup bilgilerinden oluşturduğu bir isimsiz sınıf listesini çıktıya yazar. var Kulupler = KulupleriGetir (); var Ogrenciler = OgrencileriGetir (); var KuluplerVeOgrencileri = from Kulup in Kulupler join Ogrenci in Ogrenciler on Kulup . KayitNo equals Ogrenci . Kulup into KulupVeOgrencileri select new { KulupVeOgrencileri = KulupVeOgrencileri , OgrenciSayisi = KulupVeOgrencileri . Count (), KulupAdi = Kulup . Adi }; foreach ( var Satir in KuluplerVeOgrencileri ) { Console . WriteLine ( "{0} kulübüne üye {1} öğrenci var. Öğrenciler :" , Satir . KulupAdi , Satir . OgrenciSayisi ); foreach ( var a in Satir . KulupVeOgrencileri ) { Console . WriteLine ( a . Adi ); } } Console.ReadLine(); Örneğin çıktısı şöyle olacaktır : Gezi kulübüne üye 4 öğrenci var. Öğrenciler : Tuncay Mehmet Kenan Lale Tiyatro kulübüne üye 9 öğrenci var. Öğrenciler : Jale Tekin Mesut Fatma Hale Ayşe Erhan Erhan Erhan Müzik kulübüne üye 4 öğrenci var. Öğrenciler : Veli Ahmet Cevdet Nuri Kitap kulübüne üye 0 öğrenci var. Öğrenciler : Aynı örnek, LINQ Yöntem Sözdizimi (LINQ Method Syntax) ile şu şekilde yazılabilir: var Kulupler = KulupleriGetir (); var Ogrenciler = OgrencileriGetir (); var KuluplerVeOgrencileri = Kulupler . GroupJoin ( Ogrenciler , Kulup => Kulup . KayitNo , Ogrenci => Ogrenci . Kulup , ( Kulup , KulupVeOgrencileri ) => new { KulupVeOgrencileri = KulupVeOgrencileri , OgrenciSayisi = KulupVeOgrencileri . Count (), KulupAdi = Kulup . Adi }); foreach ( var Satir in KuluplerVeOgrencileri ) { Console . WriteLine ( "{0} kulübüne üye {1} öğrenci var. Öğrenciler :" , Satir . KulupAdi , Satir . OgrenciSayisi ); foreach ( var a in Satir . KulupVeOgrencileri ) { Console . WriteLine ( a . Adi ); } } Console.ReadLine(); Join İle Hariçte Kalanlar Dahil Birleştirme (Left Outer Join) Örneği Join cümleciği, iki veri kaynağındaki satırları aynı olan bir alan değeri kullanarak birleştirip tek bir liste oluşturmak için kullanılır. Normal şartlarda bir veri kaynağındaki ortak alan üzerinden birleştirilemeyen (ortak alan değeri bulunmayan) satırlar dışarda kalır. Ancak DefaultIfEmpty metodu ile eşleme bulunamayan satırlar için varsayılan değer kullanılarak bu satırlarda listeye eklenebilir. Bu örnek öğrenci bilgilerinden oluşan bir veri kaynağındaki kayıtlar ile öğrenci kulübü bilgilerinden oluşan bir başka veri kaynağının elemanlarını kulüp numarası üzerinden birleştirerek oluşturduğu öğrencilerden oluşan kulüp gruplarının elemanlarını çıktıya yazar. Örnekte ortak alan (kulüp numarası) üzerinden eşleşmeyen kulüp satırları da (Kitap Kulübünde hiç üye yok) DefaultIfEmpty (Boş olanlar için varsayılan değeri kullan) yöntemi yardımıyla çıktı listesine dahil edilmiştir. var Kulupler = KulupleriGetir (); var Ogrenciler = OgrencileriGetir (); var KuluplerVeOgrencileri = from Kulup in Kulupler join Ogrenci in Ogrenciler on Kulup . KayitNo equals Ogrenci . Kulup into KulupVeOgrencileri from Ogrenci in KulupVeOgrencileri . DefaultIfEmpty () select new { Ogrenci = Ogrenci == null ? "(Öğrenci yok)" : Ogrenci . Adi , KulupAdi = Kulup . Adi }; foreach ( var Satir in KuluplerVeOgrencileri ) { Console . WriteLine ( "{0}, {1} kulübüne üye." , Satir . Ogrenci , Satir . KulupAdi ); } Console.ReadLine(); Örneğin çıktısı şöyle olacaktır : Tuncay, Gezi kulübüne üye. Mehmet, Gezi kulübüne üye. Kenan, Gezi kulübüne üye. Lale, Gezi kulübüne üye. Jale, Tiyatro kulübüne üye. Tekin, Tiyatro kulübüne üye. Mesut, Tiyatro kulübüne üye. Fatma, Tiyatro kulübüne üye. Hale, Tiyatro kulübüne üye. Ayşe, Tiyatro kulübüne üye. Erhan, Tiyatro kulübüne üye. Erhan, Tiyatro kulübüne üye. Erhan, Tiyatro kulübüne üye. Veli, Müzik kulübüne üye. Ahmet, Müzik kulübüne üye. Cevdet, Müzik kulübüne üye. Nuri, Müzik kulübüne üye. (Öğrenci yok), Kitap kulübüne üye.
Ekleyen: canora

En fazla 3 eski durum gösterilir.