Queryable.Zip<TFirst,TSecond,TResult> Méthode

Définition

Fusionne deux séquences à l’aide de la fonction de prédicat spécifiée.

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)

Paramètres de type

TFirst

Type des éléments de la première séquence d’entrée.

TSecond

Type des éléments de la deuxième séquence d’entrée.

TResult

Type des éléments de la séquence de résultats.

Paramètres

source1
IQueryable<TFirst>

Première séquence à fusionner.

source2
IEnumerable<TSecond>

Deuxième séquence à fusionner.

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

Fonction qui spécifie comment fusionner les éléments des deux séquences.

Retours

IQueryable<TResult>

Qui IQueryable<T> contient des éléments fusionnés de deux séquences d’entrée.

Exceptions

source1 ou source2 est null.

Exemples

L’exemple de code suivant montre comment utiliser la Zip méthode pour fusionner deux séquences.

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

Remarques

La méthode Zip génère une MethodCallExpression qui représente l’appel de Zip elle-même en tant que méthode générique construite. Il transmet ensuite la MethodCallExpression à la méthode CreateQuery<TElement>(Expression) de l'IQueryProvider représentée par la propriété Provider du paramètre source1.

La méthode fusionne chaque élément de la première séquence avec un élément qui a le même index dans la deuxième séquence. Si les séquences n’ont pas le même nombre d’éléments, la méthode fusionne les séquences jusqu’à ce qu’elle atteigne la fin de l’un d’entre eux. Par exemple, si une séquence a trois éléments et que l’autre a quatre, la séquence résultante n’aura que trois éléments.

S’applique à