SequenceEqual Metodu
SequenceEqual Örnek 1
int[] arrDizi1 = new[] { 1, 2, 5, 7 };
int[] arrDizi2 = new[] { 1, 2, 5, 7 };
bool blnEslesti = arrDizi1.SequenceEqual(arrDizi2);
Console.WriteLine($"İki dizinin eşitlik sonucu: {blnEslesti}");SequenceEqual Örnek 1
Benzer şekilde degerleri aynı olan fakat sıralaması farklı olan iki dizi karşılaştırmasını inceleyelim.
SequenceEqual Örnek 2
int[] arrDizi1 = new[] { 1, 2, 5, 7 };
int[] arrDizi2 = new[] { 5, 1, 7, 2 };
bool blnEslesti = arrDizi1.SequenceEqual(arrDizi2);
Console.WriteLine($"İki dizinin eşitlik sonucu: {blnEslesti}");SequenceEqual Örnek 2
Görüldüğü gibi iki dizi aynı değerlere sahip fakat değerlerin sırası farklı olduğu için tam eşleşme sağlanamadı. Dolayısıyla sonuç false olarak yansıdı.
Aggregate Metodu
Aggregate Örnek 1
string[] arrKelimeler = new[] { "Merhaba", "Dünya", "Yazılıma", "Hoşgeldiniz"};
string strCumle = arrKelimeler.Aggregate((a,b) => a + " " + b);
Console.WriteLine($"{strCumle}");Aggregate Örnek 1
Diğer bir örnekte ise sayısal değerli dizinin elemanlarını toplama işlemi yapalım.
Aggregate Örnek 2
int[] arrSayilar = new[] { 67, 8, 16, 100 };
int intToplam = arrSayilar.Aggregate((a, b) => a + b);
Console.WriteLine($"Dizideki sayıların toplam: {intToplam}");Aggregate Örnek 2
ToLookup Metodu
ToLookup Örnek 1
int[] sayilar = new[] { 1, 2, 3, 4, 5, 6, 7, 8 };
ILookup<bool, int> ciftSayilarDizisi = sayilar.ToLookup(x => (x % 2) == 0);
IEnumerable<int> ciftSayilar = ciftSayilarDizisi[true];
IEnumerable<int> tekSayilar = ciftSayilarDizisi[false];
Console.WriteLine("Çift Sayılar: " + string.Join(",", ciftSayilar));
Console.WriteLine("Tek Sayılar: " + string.Join(",", tekSayilar));ToLookup Örnek 1
Diğer bir örnekte ise koşul kullanımı yapalım.
ToLookup Örnek 2
class Araba {
public string marka { get; set; }
public string model { get; set; }
public int fiyat { get; set; } }
Araba[] arabalar = new[] {
new Araba { marka = "Audi", model = "A5", fiyat = 2000 },
new Araba { marka = "Audi", model = "A4", fiyat = 1900 },
new Araba { marka = "Audi", model = "Q3", fiyat = 700 },
new Araba { marka = "Audi", model = "Q7", fiyat = 1100 },
new Araba { marka = "Mercedes", model = "EQB", fiyat = 4000 },
new Araba { marka = "Mercedes", model = "GLB", fiyat = 3800 },
new Araba { marka = "Mercedes", model = "GLA", fiyat = 5000 },
new Araba { marka = "Tesla", model="Model 3", fiyat = 1700 },
new Araba { marka = "Tesla", model="Model Y", fiyat = 1950 },
new Araba { marka = "Tesla", model="Model X", fiyat = 2380 } };
var degerler = arabalar.ToLookup(a => a.marka, b => b.fiyat);
int intAudiToplam = degerler["Audi"].Sum();
int intMercedesToplam = degerler["Mercedes"].Sum();
Console.WriteLine($"Audi araçların toplam değeri: {intAudiToplam}");
Console.WriteLine($"Mercedes araçların toplam değeri: {intMercedesToplam}");ToLookup Örnek 2
GroupJoin Metodu
GroupJoin Örnek 1
var arrBolumler = new[] {
new { Id = 1, Ad = "Genel Cerrahi" },
new { Id = 2, Ad = "Göz Hastalıkları" },
new { Id = 3, Ad = "Ortopedi ve Travmatoloji" },
new { Id = 4, Ad = "Kulak Burun Boğaz" } };
var arrDoktorlar = new[] {
new { Id = 1, BolumId = 1, AdSoyad = "Mehmet Can" },
new { Id = 2, BolumId = 4, AdSoyad = "Şerif Doğan" },
new { Id = 3, BolumId = 1, AdSoyad = "Tamer Şahin" },
new { Id = 4, BolumId = 3, AdSoyad = "Selim Şahin" },
new { Id = 5, BolumId = 2, AdSoyad = "Naim Demir" },
new { Id = 6, BolumId = 4, AdSoyad = "Oğuz Mert" },
new { Id = 7, BolumId = 1, AdSoyad = "Metin Cenk" } };
var gruplandirma = arrBolumler.GroupJoin(arrDoktorlar, bolumler => bolumler.Id, doktorlar => doktorlar.BolumId, (bolumler, doktorlar) => new { bolumler, doktorlar });
foreach (var grup in gruplandirma) {
Console.WriteLine($" Bölüm Adı: {grup.bolumler.Ad}");
foreach (var doktor in grup.doktorlar) {
Console.WriteLine($" DoktorId: {doktor.Id}, BolumId: {doktor.BolumId}, AdSoyad: {doktor.AdSoyad}"); }
Console.WriteLine(""); }
Console.ReadLine();GroupJoin Örnek 1
Intersect Metodu
İki sayı dizisinde ortak "kesişim" değerleri bulalım.
Intersect Örnek 1
List<int> arrDizi1 = new List() { 23, 27, 38, 41, 57, 65 };
List<int> arrDizi2 = new List() { 11, 38, 57, 65, 91, 100, 112, 208 };
List<int> arrKesisim = arrDizi1.Intersect(arrDizi2).ToList();
foreach (var item in arrKesisim) {
Console.WriteLine($" İki dizide ortak olan değer: {item}");
}
Console.ReadLine();Intersect Örnek 1
Kaynak: LINQ'da SequenceEqual, Aggregate, GroupJoin, ToLookup ve Intersect Metodlarını İnceleyelim