Enumerable.Zip<TFirst,TSecond,TResult> Método

Definição

Aplica uma função especificada aos elementos correspondentes de duas sequências, produzindo uma sequência dos resultados.

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)

Parâmetros de tipo

TFirst

O tipo dos elementos da primeira sequência de entrada.

TSecond

O tipo dos elementos da segunda sequência de entrada.

TResult

O tipo dos elementos da sequência de resultados.

Parâmetros

first
IEnumerable<TFirst>

A primeira sequência a ser mesclada.

second
IEnumerable<TSecond>

A segunda sequência a ser mesclada.

resultSelector
Func<TFirst,TSecond,TResult>

Uma função que especifica como mesclar os elementos das duas sequências.

Retornos

IEnumerable<TResult>

Um IEnumerable<T> que contém elementos mesclados de duas sequências de entrada.

Exceções

first ou second é null.

Exemplos

O exemplo de código a seguir demonstra como usar o Zip método para mesclar duas sequências.

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

Comentários

Esse método é implementado usando a execução adiada. O valor de retorno imediato é um objeto que armazena todas as informações necessárias para executar a ação. A consulta representada por esse método não é executada até que o objeto seja enumerado chamando seu método GetEnumerator diretamente ou usando foreach em C# ou For Each em Visual Basic.

O método mescla cada elemento da primeira sequência com um elemento que tem o mesmo índice na segunda sequência. Se as sequências não tiverem o mesmo número de elementos, o método mesclará sequências até chegar ao final de um deles. Por exemplo, se uma sequência tiver três elementos e a outra tiver quatro, a sequência de resultados terá apenas três elementos.

Aplica-se a

Confira também