Queryable.Zip<TFirst,TSecond,TResult> Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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
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.