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.
0

LINQ - Küme (Set) Örnekleri

Bu makalede bazı örneklerde kullanılan veri kaynağını görmek için tıklayın.

Distinct (Farklı) Örnekleri

Distinct (farklı) yöntemi, bir veri kümesindeki tekrarları atarak yeni bir liste oluşturmak için kullanılır.

Distinct İle Tekrarlı Olmayan Listeler Oluşturma Örneği 1

Aşağıdaki örnek bir tamsayı dizisindeki farklı tamsayıları seçer ve seçtiklerini çıktıya yazar.
int[] BaziRakamlar = new int[] { 1, 2, 2, 3, 4, 4, 4, 5, 5, 6 };

var TekrarlariAtilmisDizi = BaziRakamlar.Distinct();

Console.WriteLine("Dizideki farklı rakamlar :");

foreach (var Rakam in TekrarlariAtilmisDizi)
{
    Console.WriteLine(Rakam);
}
Console.ReadLine();

Örneğin çıktısı şöyle olacaktır :

Dizideki farklı rakamlar :
1
2
3
4
5
6

Distinct İle Tekrarlı Olmayan Listeler Oluşturma Örneği 2

Aşağıdaki örnek öğrenci bilgilerini içeren bir veri kaynağındaki öğrenci kulüp kayıt numaralarını seçer ve oluşturduğu listeden Distinct ile tekrarları atarak yeni bir kulüp kayıt numaraları listesi oluşturur.

var Ogrenciler = OgrencileriGetir();

var UyeOlunanKuluplerinNumaralari = (from Ogrenci in Ogrenciler
                                     select Ogrenci.Kulup).Distinct();

Console.WriteLine("Öğrencilerin üye olduğu kulüplerin kayıt numaraları :");

foreach (var KayitNumarasi in UyeOlunanKuluplerinNumaralari)
{
    Console.WriteLine(KayitNumarasi);
}
Console.ReadLine();

Örneğin çıktısı şöyle olacaktır :

Öğrencilerin üye olduğu kulüplerin kayıt numaraları :
0
1
2

Aynı örnek, LINQ Yöntem Sözdizimi (LINQ Method Syntax) ile şu şekilde yazılabilir:

var Ogrenciler = OgrencileriGetir();

var UyeOlunanKuluplerinNumaralari = Ogrenciler.Select(Ogrenci => Ogrenci.Kulup).Distinct();

Console.WriteLine("Öğrencilerin üye olduğu kulüplerin kayıt numaraları :");

foreach (var KayitNumarasi in UyeOlunanKuluplerinNumaralari)
{
    Console.WriteLine(KayitNumarasi);
}
Console.ReadLine();

Union (Birleşim) Örnekleri

Union (birleşim) yöntemi, bir veri kümesini ikinci bir veri kümesi ile birleştirip, tekrarları atarak bir liste oluşturmak için kullanılır.

Union İle Birleşim Örneği 1

Aşağıdaki örnek bir tamsayı dizisinin elemanlarını ikinci bir tamsayı dizisinin elamanları ile birleştirip tekrarları atarak oluşturduğu yeni listeyi çıktıya yazar.
int[] Rakamlar1 = { 1, 2, 4, 5 };
int[] Rakamlar2 = { 1, 3, 4, 6 };

var DizilerdekiBenzersizRakamlar = Rakamlar1.Union(Rakamlar2);

Console.WriteLine("Her iki dizideki rakamların benzer rakamlar atılmış listesi :");

foreach (var n in DizilerdekiBenzersizRakamlar)
{
    Console.WriteLine(n);
}
Console.ReadLine();

Örneğin çıktısı şöyle olacaktır :

Her iki dizideki rakamların benzer rakamlar atılmış listesi :
1
2
4
5
3
6

Union İle Birleşim Örneği 2

Aşağıdaki örnek öğrenci bilgilerini içeren bir veri kümesinden seçtiği öğrencilerin 1. sınav notları ile oluşturduğu listeyle yine aynı veri kaynağından seçtiği 2. sınav notlarından oluşan listeyi Union ile birleştirip tekrar eden notları atarak oluşturduğu yeni listeyi çıktıya yazar.
var Ogrenciler = OgrencileriGetir();

var BirinciSinavNotlari = from Ogrenci in Ogrenciler
                          select Ogrenci.Notlar[0];
var IkinciSinavNotlari = from Ogrenci in Ogrenciler
                         select Ogrenci.Notlar[1];

var FarkliNotlar = BirinciSinavNotlari.Union(IkinciSinavNotlari);

Console.WriteLine("1. ve 2. sınavlarda alınan farklı notlar :");

foreach (var Notu in FarkliNotlar)
{
    Console.WriteLine(Notu);
}
Console.ReadLine();

Örneğin çıktısı şöyle olacaktır :

1. ve 2. sınavlarda alınan farklı notlar :
75
100
30
70
80
20
55
50
90
95
40
10
98
22
0

Aynı örnek, LINQ Yöntem Sözdizimi (LINQ Method Syntax) ile şu şekilde yazılabilir:

var Ogrenciler = OgrencileriGetir();

var BirinciSinavNotlari = Ogrenciler.Select(Ogrenci => Ogrenci.Notlar[0]);
var IkinciSinavNotlari = Ogrenciler.Select(Ogrenci => Ogrenci.Notlar[1]);

var FarkliNotlar = BirinciSinavNotlari.Union(IkinciSinavNotlari);

Console.WriteLine("1. ve 2. sınavlarda alınan farklı notlar :");

foreach (var Notu in FarkliNotlar)
{
    Console.WriteLine(Notu);
}
Console.ReadLine();

Intersect İle Kesişim Örnekleri

Intersect (kesişim) yöntemi, iki veri kümesindeki aynı olan elemanlardan bir liste oluşturur.

Intersect İle Kesişim Örneği 1

Aşağıdaki örnek 2 tamsayı dizisinde de bulunan elemanlardan yeni bir liste oluşturup çıktıya yazar.
int[] Rakamlar1 = { 1, 2, 4, 5 };
int[] Rakamlar2 = { 1, 3, 4, 6 };

var DizilerdeTekrarlananRakamlar = Rakamlar1.Intersect(Rakamlar2);

Console.WriteLine("Her iki dizide de bulunan rakamlar :");

foreach (var n in DizilerdeTekrarlananRakamlar)
{
    Console.WriteLine(n);
}
Console.ReadLine();

Örneğin çıktısı şöyle olacaktır :

Her iki dizide de bulunan rakamlar :
1
4

Intersect İle Kesişim Örneği 2

Aşağıdaki örnek öğrenci bilgilerini içeren bir veri kaynağından başarılı öğrencilerin 1. sınav notlarından oluşturduğu bir liste ile aynı veri kaynağından oluşturduğu başarısız öğrencilerin 1. sınav notlarından oluşan listedeki ortak notları seçer ve çıktıya yazar.
var Ogrenciler = OgrencileriGetir();

var BasariliOgrencilerinBirinciSinavNotlari =
                    from Ogrenci in Ogrenciler
                    where Ogrenci.Basarili
                    select Ogrenci.Notlar[0];

var BasarisizOgrencilerinBirinciSinavNotlari =
                    from Ogrenci in Ogrenciler
                    where !Ogrenci.Basarili
                    select Ogrenci.Notlar[0];

var BasariyaGoreOrtakBirinciSinavNotlari =
                    BasariliOgrencilerinBirinciSinavNotlari.Intersect(BasarisizOgrencilerinBirinciSinavNotlari);

Console.WriteLine("Başarılı ve başarısız öğrencilerin aldığı ortak 1. sınav notları :");

foreach (var Notu in BasariyaGoreOrtakBirinciSinavNotlari)
{
    Console.WriteLine(Notu);
}
Console.ReadLine();

Örneğin çıktısı şöyle olacaktır :

Başarılı ve başarısız öğrencilerin aldığı ortak 1. sınav notları :
70
80

Aynı örnek, LINQ Yöntem Sözdizimi (LINQ Method Syntax) ile şu şekilde yazılabilir:

var Ogrenciler = OgrencileriGetir();

var BasariliOgrencilerinBirinciSinavNotlari =
                    Ogrenciler.Where(Ogrenci => Ogrenci.Basarili)
                              .Select(Ogrenci => Ogrenci.Notlar[0]);

var BasarisizOgrencilerinBirinciSinavNotlari =
                    Ogrenciler.Where(Ogrenci => !Ogrenci.Basarili)
                              .Select(Ogrenci => Ogrenci.Notlar[0]);

var BasariyaGoreOrtakBirinciSinavNotlari =
                    BasariliOgrencilerinBirinciSinavNotlari.Intersect(BasarisizOgrencilerinBirinciSinavNotlari);

Console.WriteLine("Başarılı ve başarısız öğrencilerin aldığı ortak 1. sınav notları :");

foreach (var Notu in BasariyaGoreOrtakBirinciSinavNotlari)
{
    Console.WriteLine(Notu);
}
Console.ReadLine();

Except İle Haricinde Olanları Seçme Örnekleri

Except (dışında) yöntemi, iki veri kümesindeki elemanları karşılaştırarak, 1. veri kümesinde bulunup da 2. veri kümesinde bulunmayanları seçip yeni bir liste oluşturur.

Except İle Haricindekileri Seçme Örneği 1

Aşağıdaki örnek bir tamsayı dizisindeki ikinci bir tamsayı dizisinde bulunmayan tam sayıları seçerek oluşturduğu listeyi çıktıya yazar.
int[] Rakamlar1 = { 1, 2, 4, 5 };
int[] Rakamlar2 = { 1, 3, 4, 6 };

var SadeceBirincidekiRakamlar = Rakamlar1.Except(Rakamlar2);

Console.WriteLine("Birinci dizinin ikinci diziden farklı elemanları :");

foreach (var n in SadeceBirincidekiRakamlar)
{
    Console.WriteLine(n);
}
Console.ReadLine();

Örneğin çıktısı şöyle olacaktır :

Birinci dizinin ikinci diziden farklı elemanları :
2
5

Except İle Haricindekileri Seçme Örneği 2

Aşağıdaki örnek, öğrenci bilgilerini içeren bir veri kaynağından seçtiği 1. sınav notları ile 2. sınav notlarını içeren listeleri karşılaştırıp, 1. sınavda olup da 2. sınavda olmayan notları seçerek oluşturduğu listeyi çıktıya yazar.
var Ogrenciler = OgrencileriGetir();

var  BirinciSinavdakiNotlar =
            from Ogrenci in Ogrenciler
            select Ogrenci.Notlar[0];
var  IkinciSinavdakiNotlar =
            from Ogrenci in Ogrenciler
            select Ogrenci.Notlar[1];
var BirinciSinavdaOlupIkinciSinavdaOlmayanNotlar =
            BirinciSinavdakiNotlar.Except(IkinciSinavdakiNotlar);

Console.WriteLine("1. sınavda olup da 2. sınavda olmayan notlar :");

foreach (var Notu in BirinciSinavdaOlupIkinciSinavdaOlmayanNotlar)
{
    Console.WriteLine(Notu);
}
Console.ReadLine();

Örneğin çıktısı şöyle olacaktır :

1. sınavda olup da 2. sınavda olmayan notlar :
100
30
20
50

Aynı örnek, LINQ Yöntem Sözdizimi (LINQ Method Syntax) ile şu şekilde yazılabilir:

var Ogrenciler = OgrencileriGetir();

var BirinciSinavdakiNotlar = Ogrenciler.Select(Ogrenci => Ogrenci.Notlar[0]);
var IkinciSinavdakiNotlar = Ogrenciler.Select(Ogrenci => Ogrenci.Notlar[1]);

var BirinciSinavdaOlupIkinciSinavdaOlmayanNotlar =
            BirinciSinavdakiNotlar.Except(IkinciSinavdakiNotlar);

Console.WriteLine("1. sınavda olup da 2. sınavda olmayan notlar :");

foreach (var Notu in BirinciSinavdaOlupIkinciSinavdaOlmayanNotlar)
{
    Console.WriteLine(Notu);
}
Console.ReadLine();

Kaynak:
https://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b



Diğer LINQ Makaleleri:


Yazan: 10.04.16 22:42

101,387p 4ü