Queryable.Zip Método

Definição

Sobrecargas

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

Mescla duas sequências usando a função de predicado especificada.

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

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

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

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

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

Mescla duas sequências usando a função de predicado especificada.

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

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

source1
IQueryable<TFirst>

A primeira sequência a ser mesclada.

source2
IEnumerable<TSecond>

A segunda sequência a ser mesclada.

resultSelector
Expression<Func<TFirst,TSecond,TResult>>

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

Retornos

IQueryable<TResult>

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

Exceções

source1 ou source2 é 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.AsQueryable().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.AsQueryable().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

O Zip método gera um MethodCallExpression que representa chamar Zip a si mesmo como um método genérico construído. Em seguida, ele passa o MethodCallExpression CreateQuery<TElement>(Expression) método do IQueryProvider representado pela Provider propriedade do source1 parâmetro.

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 mescla 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 resultante terá apenas três elementos.

Aplica-se a

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

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

public:
generic <typename TFirst, typename TSecond, typename TThird>
[System::Runtime::CompilerServices::Extension]
 static System::Linq::IQueryable<ValueTuple<TFirst, TSecond, TThird>> ^ Zip(System::Linq::IQueryable<TFirst> ^ source1, System::Collections::Generic::IEnumerable<TSecond> ^ source2, System::Collections::Generic::IEnumerable<TThird> ^ source3);
public static System.Linq.IQueryable<(TFirst First, TSecond Second, TThird Third)> Zip<TFirst,TSecond,TThird> (this System.Linq.IQueryable<TFirst> source1, System.Collections.Generic.IEnumerable<TSecond> source2, System.Collections.Generic.IEnumerable<TThird> source3);
static member Zip : System.Linq.IQueryable<'First> * seq<'Second> * seq<'hird> -> System.Linq.IQueryable<ValueTuple<'First, 'Second, 'hird>>
<Extension()>
Public Function Zip(Of TFirst, TSecond, TThird) (source1 As IQueryable(Of TFirst), source2 As IEnumerable(Of TSecond), source3 As IEnumerable(Of TThird)) As IQueryable(Of ValueTuple(Of TFirst, TSecond, TThird))

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

source1
IQueryable<TFirst>

A primeira sequência a ser mesclada.

source2
IEnumerable<TSecond>

A segunda sequência a ser mesclada.

source3
IEnumerable<TThird>

A terceira sequência a ser mesclada.

Retornos

IQueryable<ValueTuple<TFirst,TSecond,TThird>>

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

Aplica-se a

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

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

public:
generic <typename TFirst, typename TSecond>
[System::Runtime::CompilerServices::Extension]
 static System::Linq::IQueryable<ValueTuple<TFirst, TSecond>> ^ Zip(System::Linq::IQueryable<TFirst> ^ source1, System::Collections::Generic::IEnumerable<TSecond> ^ source2);
public static System.Linq.IQueryable<(TFirst First, TSecond Second)> Zip<TFirst,TSecond> (this System.Linq.IQueryable<TFirst> source1, System.Collections.Generic.IEnumerable<TSecond> source2);
static member Zip : System.Linq.IQueryable<'First> * seq<'Second> -> System.Linq.IQueryable<ValueTuple<'First, 'Second>>
<Extension()>
Public Function Zip(Of TFirst, TSecond) (source1 As IQueryable(Of TFirst), source2 As IEnumerable(Of TSecond)) As IQueryable(Of ValueTuple(Of TFirst, TSecond))

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

source1
IQueryable<TFirst>

A primeira sequência a ser mesclada.

source2
IEnumerable<TSecond>

A segunda sequência a ser mesclada.

Retornos

IQueryable<ValueTuple<TFirst,TSecond>>

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

Aplica-se a