Queryable.Zip<TFirst,TSecond,TResult> Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Führt zwei Sequenzen mithilfe der angegebenen Prädikatfunktion zusammen.
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)
Typparameter
- TFirst
Der Typ der Elemente der ersten Eingabesequenz.
- TSecond
Der Typ der Elemente der zweiten Eingabesequenz.
- TResult
Der Typ der Elemente der Ergebnissequenz.
Parameter
- source1
- IQueryable<TFirst>
Die erste Zusammenführungssequenz.
- source2
- IEnumerable<TSecond>
Die zweite Zusammenführungssequenz.
- resultSelector
- Expression<Func<TFirst,TSecond,TResult>>
Eine Funktion, die angibt, wie die Elemente aus den beiden Sequenzen zusammengeführt werden.
Gibt zurück
Ein IQueryable<T> Element, das zusammengeführte Elemente von zwei Eingabesequenzen enthält.
Ausnahmen
source1 oder source2 ist null.
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie die Zip Methode zum Zusammenführen von zwei Sequenzen verwendet wird.
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
Hinweise
Die Zip Methode generiert eine MethodCallExpression , die den Aufruf Zip selbst als konstruierte generische Methode darstellt. Anschließend wird die MethodCallExpression Methode der CreateQuery<TElement>(Expression)IQueryProvider durch die Provider Eigenschaft des source1 Parameters dargestellten Methode übergeben.
Die Methode führt jedes Element der ersten Sequenz mit einem Element zusammen, das denselben Index in der zweiten Sequenz aufweist. Wenn die Sequenzen nicht über dieselbe Anzahl von Elementen verfügen, führt die Methode Sequenzen zusammen, bis sie das Ende eines elements erreicht. Wenn z. B. eine Sequenz drei Elemente aufweist und die andere vier hat, hat die resultierende Sequenz nur drei Elemente.