Queryable.Zip 方法

定義

多載

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

使用指定的述詞函式來合併兩個序列。

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

產生具有來自三個指定序列之元素的元組序列。

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

從兩個指定序列中的元素產生一系列元組。

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

來源:
Queryable.cs
來源:
Queryable.cs
來源:
Queryable.cs

使用指定的述詞函式來合併兩個序列。

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)

類型參數

TFirst

第一個輸入序列的項目型別。

TSecond

第二個輸入序列的項目型別。

TResult

結果序列的項目型別。

參數

source1
IQueryable<TFirst>

要合併的第一個序列。

source2
IEnumerable<TSecond>

要合併的第二個序列。

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

指定如何從兩個序列合併項目的函式。

傳回

IQueryable<TResult>

IQueryable<T>,其中包含兩個輸入序列的合併項目。

例外狀況

source1source2null

範例

下列程式碼範例示範如何使用 Zip 方法來合併兩個序列。

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

備註

方法 Zip 會產生 , MethodCallExpression 表示呼叫 Zip 本身為建構的泛型方法。 然後,它會將 傳遞給 MethodCallExpressionCreateQuery<TElement>(Expression) 參數之 屬性所 Provider 表示的 方法 IQueryProvidersource1

方法會將第一個序列的每個元素與在第二個序列中具有相同索引的專案合併。 如果序列的元素數目不相同,方法會定序序列,直到到達其中一個元素的結尾為止。 例如,如果一個序列有三個元素,而另一個序列有四個元素,則產生的序列只會有三個元素。

適用於

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

來源:
Queryable.cs
來源:
Queryable.cs
來源:
Queryable.cs

產生具有來自三個指定序列之元素的元組序列。

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))

類型參數

TFirst

第一個輸入序列的項目型別。

TSecond

第二個輸入序列的項目型別。

TThird

第三個輸入序列的專案類型。

參數

source1
IQueryable<TFirst>

要合併的第一個序列。

source2
IEnumerable<TSecond>

要合併的第二個序列。

source3
IEnumerable<TThird>

要合併的第三個序列。

傳回

IQueryable<ValueTuple<TFirst,TSecond,TThird>>

一連串 Tuple,其元素會依該順序取自第一個、第二個和第三個序列。

適用於

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

來源:
Queryable.cs
來源:
Queryable.cs
來源:
Queryable.cs

從兩個指定序列中的元素產生一系列元組。

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))

類型參數

TFirst

第一個輸入序列的項目型別。

TSecond

第二個輸入序列的項目型別。

參數

source1
IQueryable<TFirst>

要合併的第一個序列。

source2
IEnumerable<TSecond>

要合併的第二個序列。

傳回

IQueryable<ValueTuple<TFirst,TSecond>>

取自第一個和第二個序列元素的一系列元組,以該順序排序。

適用於