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 - Concat ve SequenceEqual İle Örnekler

Concat İle Ekleme Örneği 1-

Concat yöntemi iki koleksiyonu birleştirerek bir koleksiyon oluşturur.

Bu örnek, iki tamsayı dizisinin elemanlarını birleştirerek yeni bir dizi oluşturur.

// Bu sınıf IEnumerable<int> arayüzünü genişleten bir yöntem tanımlar.
public static class OzelSilsileIslecleri
{
    public static IEnumerable<int> Katistir(this IEnumerable<int> birinci,
                                                 IEnumerable<int> ikinci,
                                                 Func<int, int, int> fonksiyon)
    {

        IEnumerator<int> Sayici1 = birinci.GetEnumerator();

        IEnumerator<int> Sayici2 = ikinci.GetEnumerator();

        while (Sayici1.MoveNext() && Sayici2.MoveNext())
        {
            yield return fonksiyon(Sayici1.Current, Sayici2.Current);
        }

    }
}

int[] CiftRakamlar = { 0, 2, 4, 6, 8 };
int[] TekRakamlar = { 1, 3, 5, 7, 9 };

var TumRakamlar = TekRakamlar.Concat(CiftRakamlar);

Console.WriteLine("Tüm rakamlar:");

foreach (var Rakam in TumRakamlar)
{
    Console.Write(Rakam);
    Console.Write(" ");
}Console.ReadLine(); 

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

Tüm rakamlar:
1 3 5 7 9 0 2 4 6 8 

Concat İle Ekleme Örneği 2

Concat yöntemi iki koleksiyonu birleştirerek bir koleksiyon oluşturur.

Bu örnek, öğrenci bilgilerini içeren bir veri kaynağından birinci ve ikinci sınıflardaki erkek öğrencileri seçer ve daha sonra bu iki koleksiyonu birleştirip elemanlarını çıktıya yazar.

(Bu örnekte kullanılan veri kaynağını görmek için tıklayın.)

var Ogrenciler = OgrencileriGetir();

var BirinciSinifErkekleri = 
           from Ogrenci in Ogrenciler
           where Ogrenci.Sinif == 1 && Ogrenci.Cinsiyet == "Erkek"
           select Ogrenci.Adi;

var IkinciSinifErkekleri = 
          from Ogrenci in Ogrenciler
          where Ogrenci.Sinif == 2 && Ogrenci.Cinsiyet == "Erkek"
          select Ogrenci.Adi;

var BirinciVeIkinciSinifErkekleri =
          BirinciSinifErkekleri.Concat(IkinciSinifErkekleri);

Console.WriteLine("1. ve 2. sınıflardaki erkek öğrenciler:");

foreach (var OgrenciAdi in BirinciVeIkinciSinifErkekleri)
{
    Console.WriteLine(OgrenciAdi);
}
Console.ReadLine();

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

1. ve 2. sınıflardaki erkek öğrenciler:
Tekin
Kenan
Erhan
Ahmet
Nuri
Erhan

SequenceEqual İle Karşılaştırma Örneği

SequenceEqual yöntemi, iki koleksiyonu karşılaştırarak tüm elemanlarının aynı ve aynı dizilimde olup olmadığnı döndürür.

Bu örnek, şehir isimlerinden oluşan üç diziyi karşılaştırmakta ve dizilimlerinin aynı olup olmadığını çıktıya yazmaktadır.

var SehirlerA = new string[] { "Ankara", "İstanbul", "İzmir" };
var SehirlerB = new string[] { "İstanbul", "Ankara", "İzmir" };
var SehirlerC = new string[] { "Ankara", "İstanbul", "İzmir" };

var AveBSiraEsitMi = SehirlerA.SequenceEqual(SehirlerB);
var AveCSiraEsitMi = SehirlerA.SequenceEqual(SehirlerC);
var BveCSiraEsitMi = SehirlerB.SequenceEqual(SehirlerC);

Console.WriteLine("SehirlerA dizisi ile SehirlerB dizisindeki elemanlar ve sıralaması {0}.", AveBSiraEsitMi ? "eşit" : "eşit değil");
Console.WriteLine("SehirlerA dizisi ile SehirlerC dizisindeki elemanlar ve sıralaması {0}.", AveCSiraEsitMi ? "eşit" : "eşit değil");
Console.WriteLine("SehirlerB dizisi ile SehirlerC dizisindeki elemanlar ve sıralaması {0}.", BveCSiraEsitMi ? "eşit" : "eşit değil");

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

SehirlerA dizisi ile SehirlerB dizisindeki elemanlar ve sıralaması eşit değil.
SehirlerA dizisi ile SehirlerC dizisindeki elemanlar ve sıralaması eşit.
SehirlerB dizisi ile SehirlerC dizisindeki elemanlar ve sıralaması eşit değil.

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



Diğer LINQ Makaleleri:


Yazan: 10.04.16 23:46

101,387p 4ü