Enumerable.Zip<TFirst,TSecond,TResult> Metod

Definition

Tillämpar en angiven funktion på motsvarande element i två sekvenser, vilket ger en sekvens av resultaten.

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)

Typparametrar

TFirst

Typ av element i den första indatasekvensen.

TSecond

Typ av element i den andra indatasekvensen.

TResult

Typ av element i resultatsekvensen.

Parametrar

first
IEnumerable<TFirst>

Den första sekvensen som ska sammanfogas.

second
IEnumerable<TSecond>

Den andra sekvensen som ska sammanfogas.

resultSelector
Func<TFirst,TSecond,TResult>

En funktion som anger hur du sammanfogar elementen från de två sekvenserna.

Returer

IEnumerable<TResult>

En IEnumerable<T> som innehåller sammanfogade element i två indatasekvenser.

Undantag

first eller second är null.

Exempel

Följande kodexempel visar hur du använder Zip metoden för att sammanfoga två sekvenser.

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

Kommentarer

Den här metoden implementeras med uppskjuten körning. Det omedelbara returvärdet är ett objekt som lagrar all information som krävs för att utföra åtgärden. Frågan som representeras av den här metoden körs inte förrän objektet räknas upp antingen genom att anropa metoden GetEnumerator direkt eller med hjälp av foreach i C# eller For Each i Visual Basic.

Metoden sammanfogar varje element i den första sekvensen med ett element som har samma index i den andra sekvensen. Om sekvenserna inte har samma antal element sammanfogar metoden sekvenser tills den når slutet av ett av dem. Om en sekvens till exempel har tre element och den andra har fyra, har resultatsekvensen bara tre element.

Gäller för

Se även