Ler em inglês

Compartilhar via


Enumerable.Zip Método

Definição

Sobrecargas

Zip<TFirst,TSecond,TResult>(IEnumerable<TFirst>, IEnumerable<TSecond>, Func<TFirst,TSecond,TResult>)

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

Zip<TFirst,TSecond,TThird>(IEnumerable<TFirst>, IEnumerable<TSecond>, IEnumerable<TThird>)

Produz uma sequência de tuplas com elementos das três sequências especificadas.

Zip<TFirst,TSecond>(IEnumerable<TFirst>, IEnumerable<TSecond>)

Produz uma sequência de tuplas com elementos das duas sequências especificadas.

Zip<TFirst,TSecond,TResult>(IEnumerable<TFirst>, IEnumerable<TSecond>, Func<TFirst,TSecond,TResult>)

Origem:
Zip.cs
Origem:
Zip.cs
Origem:
Zip.cs

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

C#
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);

Parâmetros de tipo

TFirst

O tipo de elementos na primeira sequência de entrada.

TSecond

O tipo de elementos na segunda sequência de entrada.

TResult

O tipo de elementos na sequência de resultado.

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.

C#
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

Comentários

Esse método é implementado usando a execução adiada. O valor retornado 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 GetEnumerator método diretamente ou usando foreach em C# ou For Each no 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 uma delas. 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.

Confira também

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Zip<TFirst,TSecond,TThird>(IEnumerable<TFirst>, IEnumerable<TSecond>, IEnumerable<TThird>)

Origem:
Zip.cs
Origem:
Zip.cs
Origem:
Zip.cs

Produz uma sequência de tuplas com elementos das três sequências especificadas.

C#
public static System.Collections.Generic.IEnumerable<(TFirst First, TSecond Second, TThird Third)> Zip<TFirst,TSecond,TThird> (this System.Collections.Generic.IEnumerable<TFirst> first, System.Collections.Generic.IEnumerable<TSecond> second, System.Collections.Generic.IEnumerable<TThird> third);

Parâmetros de tipo

TFirst

O tipo de elementos na primeira sequência de entrada.

TSecond

O tipo de elementos na segunda sequência de entrada.

TThird

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

Parâmetros

first
IEnumerable<TFirst>

A primeira sequência a ser mesclada.

second
IEnumerable<TSecond>

A segunda sequência a ser mesclada.

third
IEnumerable<TThird>

A terceira sequência a ser mesclada.

Retornos

IEnumerable<ValueTuple<TFirst,TSecond,TThird>>

Uma sequência de tuplas com elementos obtidos da primeira, segunda e terceira sequências, nessa ordem.

Confira também

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET 6, 7, 8, 9

Zip<TFirst,TSecond>(IEnumerable<TFirst>, IEnumerable<TSecond>)

Origem:
Zip.cs
Origem:
Zip.cs
Origem:
Zip.cs

Produz uma sequência de tuplas com elementos das duas sequências especificadas.

C#
public static System.Collections.Generic.IEnumerable<(TFirst First, TSecond Second)> Zip<TFirst,TSecond> (this System.Collections.Generic.IEnumerable<TFirst> first, System.Collections.Generic.IEnumerable<TSecond> second);

Parâmetros de tipo

TFirst

O tipo de elementos na primeira sequência de entrada.

TSecond

O tipo de elementos na segunda sequência de entrada.

Parâmetros

first
IEnumerable<TFirst>

A primeira sequência a ser mesclada.

second
IEnumerable<TSecond>

A segunda sequência a ser mesclada.

Retornos

IEnumerable<ValueTuple<TFirst,TSecond>>

Uma sequência de tuplas com elementos extraídos da primeira e segunda sequências, nessa ordem.

Confira também

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 3.0, Core 3.1, 5, 6, 7, 8, 9