Enumerable.Zip<TFirst,TSecond,TResult> Methode

Definitie

Hiermee past u een opgegeven functie toe op de bijbehorende elementen van twee reeksen, waardoor een reeks resultaten wordt geproduceerd.

public:
generic <typename TFirst, typename TSecond, typename TResult>
[System::Runtime::CompilerServices::Extension]
 static System::Collections::Generic::IEnumerable<TResult> ^ Zip(System::Collections::Generic::IEnumerable<TFirst> ^ first, System::Collections::Generic::IEnumerable<TSecond> ^ second, Func<TFirst, TSecond, TResult> ^ resultSelector);
public static System.Collections.Generic.IEnumerable<TResult> Zip<TFirst,TSecond,TResult>(this System.Collections.Generic.IEnumerable<TFirst> first, System.Collections.Generic.IEnumerable<TSecond> second, Func<TFirst,TSecond,TResult> resultSelector);
static member Zip : seq<'First> * seq<'Second> * Func<'First, 'Second, 'Result> -> seq<'Result>
<Extension()>
Public Function Zip(Of TFirst, TSecond, TResult) (first As IEnumerable(Of TFirst), second As IEnumerable(Of TSecond), resultSelector As Func(Of TFirst, TSecond, TResult)) As IEnumerable(Of TResult)

Type parameters

TFirst

Het type van de elementen van de eerste invoerreeks.

TSecond

Het type van de elementen van de tweede invoerreeks.

TResult

Het type van de elementen van de resultatenreeks.

Parameters

first
IEnumerable<TFirst>

De eerste reeks die moet worden samengevoegd.

second
IEnumerable<TSecond>

De tweede reeks die moet worden samengevoegd.

resultSelector
Func<TFirst,TSecond,TResult>

Een functie die aangeeft hoe de elementen uit de twee reeksen moeten worden samengevoegd.

Retouren

IEnumerable<TResult>

Een IEnumerable<T> met samengevoegde elementen van twee invoerreeksen.

Uitzonderingen

first of second is null.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u de Zip methode gebruikt om twee reeksen samen te voegen.

int[] numbers = { 1, 2, 3, 4 };
string[] words = { "one", "two", "three" };

var numbersAndWords = numbers.Zip(words, (first, second) => first + " " + second);

foreach (var item in numbersAndWords)
    Console.WriteLine(item);

// This code produces the following output:

// 1 one
// 2 two
// 3 three
Dim numbers() As Integer = {1, 2, 3, 4}
Dim words() As String = {"one", "two", "three"}
Dim numbersAndWords = numbers.Zip(words, Function(first, second) first & " " & second)

For Each item In numbersAndWords
    Console.WriteLine(item)
Next

' This code produces the following output:

' 1 one
' 2 two
' 3 three

Opmerkingen

Deze methode wordt geïmplementeerd met behulp van de uitgestelde uitvoering. De onmiddellijke retourwaarde is een object waarin alle informatie wordt opgeslagen die nodig is om de actie uit te voeren. De query die door deze methode wordt vertegenwoordigd, wordt pas uitgevoerd nadat het object is geïnventariseerd door de methode GetEnumerator rechtstreeks aan te roepen of door foreach te gebruiken in C# of For Each in Visual Basic.

De methode voegt elk element van de eerste reeks samen met een element met dezelfde index in de tweede reeks. Als de reeksen niet hetzelfde aantal elementen hebben, worden reeksen samengevoegd totdat het einde van een van deze reeksen is bereikt. Als één reeks bijvoorbeeld drie elementen heeft en de andere reeks vier elementen heeft, heeft de resultaatvolgorde slechts drie elementen.

Van toepassing op

Zie ook