Queryable.Zip Metoda

Definicja

Przeciążenia

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

Scala dwie sekwencje przy użyciu określonej funkcji predykatu.

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

Tworzy sekwencję krotki z elementami z trzech określonych sekwencji.

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

Tworzy sekwencję krotki z elementami z dwóch określonych sekwencji.

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

Scala dwie sekwencje przy użyciu określonej funkcji predykatu.

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 elementów pierwszej sekwencji wejściowej.

TSecond

Typ elementów drugiej sekwencji wejściowej.

TResult

Typ elementów sekwencji wyników.

Parametry

source1
IQueryable<TFirst>

Pierwsza sekwencja do scalenia.

source2
IEnumerable<TSecond>

Druga sekwencja do scalenia.

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

Funkcja określająca sposób scalania elementów z dwóch sekwencji.

Zwraca

IQueryable<TResult>

Element IQueryable<T> zawierający scalone elementy dwóch sekwencji wejściowych.

Wyjątki

source1 lub source2 ma wartość null.

Przykłady

W poniższym przykładzie kodu pokazano, jak używać Zip metody do scalania dwóch sekwencji.

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

Uwagi

Metoda Zip generuje obiekt MethodCallExpression , który reprezentuje wywołanie Zip siebie jako skonstruowaną metodę ogólną. Następnie przekazuje MethodCallExpression wartość do CreateQuery<TElement>(Expression) metody IQueryProvider reprezentowanej przez Provider właściwość parametru source1 .

Metoda scala każdy element pierwszej sekwencji z elementem, który ma ten sam indeks w drugiej sekwencji. Jeśli sekwencje nie mają tej samej liczby elementów, metoda scala sekwencje aż do końca jednego z nich. Jeśli na przykład jedna sekwencja ma trzy elementy, a druga ma cztery, wynikowa sekwencja będzie miała tylko trzy elementy.

Dotyczy

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

Tworzy sekwencję krotki z elementami z trzech określonych sekwencji.

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 elementów pierwszej sekwencji wejściowej.

TSecond

Typ elementów drugiej sekwencji wejściowej.

TThird

Typ elementów trzeciej sekwencji wejściowej.

Parametry

source1
IQueryable<TFirst>

Pierwsza sekwencja do scalenia.

source2
IEnumerable<TSecond>

Druga sekwencja do scalenia.

source3
IEnumerable<TThird>

Trzecia sekwencja do scalenia.

Zwraca

IQueryable<ValueTuple<TFirst,TSecond,TThird>>

Sekwencja krotki z elementami pobranymi z pierwszej, drugiej i trzeciej sekwencji w tej kolejności.

Dotyczy

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

Tworzy sekwencję krotki z elementami z dwóch określonych sekwencji.

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 elementów pierwszej sekwencji wejściowej.

TSecond

Typ elementów drugiej sekwencji wejściowej.

Parametry

source1
IQueryable<TFirst>

Pierwsza sekwencja do scalenia.

source2
IEnumerable<TSecond>

Druga sekwencja do scalenia.

Zwraca

IQueryable<ValueTuple<TFirst,TSecond>>

Sekwencja krotki z elementami pobranymi z pierwszej i drugiej sekwencji w tej kolejności.

Dotyczy