Sdílet prostřednictvím


Queryable.Zip Metoda

Definice

Přetížení

Zip<TFirst,TSecond,TResult>(IQueryable<TFirst>, IEnumerable<TSecond>, Expression<Func<TFirst,TSecond,TResult>>)

Sloučí dvě sekvence pomocí zadané funkce predikátu.

Zip<TFirst,TSecond,TThird>(IQueryable<TFirst>, IEnumerable<TSecond>, IEnumerable<TThird>)

Vytvoří sekvenci řazených kolekcí členů s prvky ze tří zadaných sekvencí.

Zip<TFirst,TSecond>(IQueryable<TFirst>, IEnumerable<TSecond>)

Vytvoří sekvenci řazených kolekcí členů s prvky ze dvou zadaných sekvencí.

Zip<TFirst,TSecond,TResult>(IQueryable<TFirst>, IEnumerable<TSecond>, Expression<Func<TFirst,TSecond,TResult>>)

Zdroj:
Queryable.cs
Zdroj:
Queryable.cs
Zdroj:
Queryable.cs

Sloučí dvě sekvence pomocí zadané funkce predikátu.

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)

Parametry typu

TFirst

Typ prvků první vstupní sekvence.

TSecond

Typ prvků druhé vstupní sekvence.

TResult

Typ prvků sekvence výsledků.

Parametry

source1
IQueryable<TFirst>

První sekvence, která se má sloučit.

source2
IEnumerable<TSecond>

Druhá sekvence, která se má sloučit.

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

Funkce, která určuje, jak sloučit prvky ze dvou sekvencí.

Návraty

IQueryable<TResult>

Obsahuje IQueryable<T> sloučené prvky dvou vstupních sekvencí.

Výjimky

source1 nebo source2 je null.

Příklady

Následující příklad kódu ukazuje, jak použít metodu Zip ke sloučení dvou sekvencí.

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

Poznámky

Metoda Zip vygeneruje MethodCallExpression , který představuje volání Zip sebe sama jako konstruované obecné metody. Pak předá MethodCallExpressionCreateQuery<TElement>(Expression) metodě parametru IQueryProvider reprezentované Provider vlastností source1 .

Metoda sloučí každý prvek první sekvence s prvkem, který má stejný index ve druhé sekvenci. Pokud sekvence nemají stejný počet prvků, metoda slučuje sekvence, dokud nedosáhne konce jednoho z nich. Pokud má například jedna sekvence tři prvky a druhá čtyři, bude mít výsledná sekvence pouze tři prvky.

Platí pro

Zip<TFirst,TSecond,TThird>(IQueryable<TFirst>, IEnumerable<TSecond>, IEnumerable<TThird>)

Zdroj:
Queryable.cs
Zdroj:
Queryable.cs
Zdroj:
Queryable.cs

Vytvoří sekvenci řazených kolekcí členů s prvky ze tří zadaných sekvencí.

public:
generic <typename TFirst, typename TSecond, typename TThird>
[System::Runtime::CompilerServices::Extension]
 static System::Linq::IQueryable<ValueTuple<TFirst, TSecond, TThird>> ^ Zip(System::Linq::IQueryable<TFirst> ^ source1, System::Collections::Generic::IEnumerable<TSecond> ^ source2, System::Collections::Generic::IEnumerable<TThird> ^ source3);
public static System.Linq.IQueryable<(TFirst First, TSecond Second, TThird Third)> Zip<TFirst,TSecond,TThird> (this System.Linq.IQueryable<TFirst> source1, System.Collections.Generic.IEnumerable<TSecond> source2, System.Collections.Generic.IEnumerable<TThird> source3);
static member Zip : System.Linq.IQueryable<'First> * seq<'Second> * seq<'hird> -> System.Linq.IQueryable<ValueTuple<'First, 'Second, 'hird>>
<Extension()>
Public Function Zip(Of TFirst, TSecond, TThird) (source1 As IQueryable(Of TFirst), source2 As IEnumerable(Of TSecond), source3 As IEnumerable(Of TThird)) As IQueryable(Of ValueTuple(Of TFirst, TSecond, TThird))

Parametry typu

TFirst

Typ prvků první vstupní sekvence.

TSecond

Typ prvků druhé vstupní sekvence.

TThird

Typ prvků třetí vstupní sekvence.

Parametry

source1
IQueryable<TFirst>

První sekvence, která se má sloučit.

source2
IEnumerable<TSecond>

Druhá sekvence, která se má sloučit.

source3
IEnumerable<TThird>

Třetí sekvence, která se má sloučit.

Návraty

IQueryable<ValueTuple<TFirst,TSecond,TThird>>

Posloupnost řazených kolekcí členů s prvky převzatými z první, druhé a třetí sekvence v uvedeném pořadí.

Platí pro

Zip<TFirst,TSecond>(IQueryable<TFirst>, IEnumerable<TSecond>)

Zdroj:
Queryable.cs
Zdroj:
Queryable.cs
Zdroj:
Queryable.cs

Vytvoří sekvenci řazených kolekcí členů s prvky ze dvou zadaných sekvencí.

public:
generic <typename TFirst, typename TSecond>
[System::Runtime::CompilerServices::Extension]
 static System::Linq::IQueryable<ValueTuple<TFirst, TSecond>> ^ Zip(System::Linq::IQueryable<TFirst> ^ source1, System::Collections::Generic::IEnumerable<TSecond> ^ source2);
public static System.Linq.IQueryable<(TFirst First, TSecond Second)> Zip<TFirst,TSecond> (this System.Linq.IQueryable<TFirst> source1, System.Collections.Generic.IEnumerable<TSecond> source2);
static member Zip : System.Linq.IQueryable<'First> * seq<'Second> -> System.Linq.IQueryable<ValueTuple<'First, 'Second>>
<Extension()>
Public Function Zip(Of TFirst, TSecond) (source1 As IQueryable(Of TFirst), source2 As IEnumerable(Of TSecond)) As IQueryable(Of ValueTuple(Of TFirst, TSecond))

Parametry typu

TFirst

Typ prvků první vstupní sekvence.

TSecond

Typ prvků druhé vstupní sekvence.

Parametry

source1
IQueryable<TFirst>

První sekvence, která se má sloučit.

source2
IEnumerable<TSecond>

Druhá sekvence, která se má sloučit.

Návraty

IQueryable<ValueTuple<TFirst,TSecond>>

Posloupnost řazených kolekcí členů s prvky převzatými z první a druhé sekvence v uvedeném pořadí.

Platí pro