Queryable.Zip<TFirst,TSecond,TResult> Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
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.