Zip
Zip ile iki koleksiyonu paralel birleştirmeyi öğrenirsin.
Zip ile paralel birleştirme
Zip iki diziyi indeks bazında birleştirir; her adımda her iki diziden birer eleman alır ve bir sonuç üretir. Sonuç dizisinin uzunluğu kısa olanınkadır.
Örnek: names.Zip(ages, (n, a) => n + " " + a) her indekste isim ve yaşı birleştirir. Bir dizi daha kısaysa Zip o uzunlukta durur; fazlalık atılır.
Sonuç seçici
Zip'in sonuç seçicisi iki parametre alır: birinci dizinin elemanı ve ikinci dizinin elemanı. Dönüş değeri her çift için üretilen sonuçtur. Türü istediğin gibi seçebilirsin.
.NET 6 ve sonrasında Zip sonuç seçicisiz de çağrılabilir; o zaman her çifti bir tuple olarak verir: names.Zip(ages) → IEnumerable<(string, int)>.
Uygulama İsim ve yaşları Zip'le
Aşağıdaki names ve ages listelerini Zip ile birleştir. Her çifti isim yaş biçiminde Console.WriteLine ile yazdır.
Örnek çözümü göster
var pairs = names.Zip(ages, (n, a) => n + " " + a); ile birleştir. foreach (var p in pairs) Console.WriteLine(p); yaz.
Örnek çözüm:
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
var names = new List<string> { "Ayşe", "Ali" };
var ages = new List<int> { 30, 25 };
var pairs = names.Zip(ages, (n, a) => n + " " + a);
foreach (var p in pairs)
{
Console.WriteLine(p);
}
}
}
Kendini test et
-
Metodu davranışa eşle
- Zip
- İndeks bazlı çift
- Join
- Anahtarla birleşim
- Aggregate
- Tek değere katla
- GroupBy
- Anahtara göre grupla
-
Zip farklı uzunlukta dizilerde?
- Kısa olanın uzunluğunda durur
- Hata fırlatır
- Uzun olanın uzunluğunda devam eder
- Yalnız ilk elemanı alır
Cevabı göster
Kısa olanın uzunluğunda durur — Doğru. Zip kısa dizi bitince durur; fazlalık atılır.
-
Zip çağrısını tamamla
var pairs = names.____(ages, (n, a) => n + " " + a);Cevabı göster
var pairs = names.Zip(ages, (n, a) => n + " " + a);