Queryable.Zip<TFirst,TSecond,TResult> Methode

Definitie

Hiermee worden twee reeksen samengevoegd met behulp van de opgegeven predicaatfunctie.

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)

Type parameters

TFirst

Het type van de elementen van de eerste invoerreeks.

TSecond

Het type van de elementen van de tweede invoerreeks.

TResult

Het type van de elementen van de resultatenreeks.

Parameters

source1
IQueryable<TFirst>

De eerste reeks die moet worden samengevoegd.

source2
IEnumerable<TSecond>

De tweede reeks die moet worden samengevoegd.

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

Een functie die aangeeft hoe de elementen uit de twee reeksen moeten worden samengevoegd.

Retouren

IQueryable<TResult>

Een IQueryable<T> met samengevoegde elementen van twee invoerreeksen.

Uitzonderingen

source1 of source2 is null.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u de Zip methode gebruikt om twee reeksen samen te voegen.

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

Opmerkingen

De Zip methode genereert een MethodCallExpression die zichzelf aanroept Zip als een samengestelde algemene methode. Vervolgens wordt de MethodCallExpression methode doorgegeven aan de CreateQuery<TElement>(Expression) methode van de IQueryProvider vertegenwoordigd door de Provider eigenschap van de source1 parameter.

De methode voegt elk element van de eerste reeks samen met een element met dezelfde index in de tweede reeks. Als de reeksen niet hetzelfde aantal elementen hebben, worden reeksen samengevoegd totdat het einde van een van deze reeksen is bereikt. Als één reeks bijvoorbeeld drie elementen heeft en de andere reeks vier elementen heeft, heeft de resulterende reeks slechts drie elementen.

Van toepassing op