Enumerable.Zip メソッド

定義

オーバーロード

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

2 つのシーケンスの対応する要素に対して、1 つの指定した関数を適用し、結果として 1 つのシーケンスを生成します。Applies a specified function to the corresponding elements of two sequences, producing a sequence of the results.

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

指定された 2 つのシーケンスの要素を持つタプルのシーケンスを生成します。Produces a sequence of tuples with elements from the two specified sequences.

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

2 つのシーケンスの対応する要素に対して、1 つの指定した関数を適用し、結果として 1 つのシーケンスを生成します。Applies a specified function to the corresponding elements of two sequences, producing a sequence of the results.

public:
generic <typename TFirst, typename TSecond, typename TResult>
[System::Runtime::CompilerServices::Extension]
 static System::Collections::Generic::IEnumerable<TResult> ^ Zip(System::Collections::Generic::IEnumerable<TFirst> ^ first, System::Collections::Generic::IEnumerable<TSecond> ^ second, Func<TFirst, TSecond, TResult> ^ resultSelector);
public static System.Collections.Generic.IEnumerable<TResult> Zip<TFirst,TSecond,TResult> (this System.Collections.Generic.IEnumerable<TFirst> first, System.Collections.Generic.IEnumerable<TSecond> second, Func<TFirst,TSecond,TResult> resultSelector);
static member Zip : seq<'First> * seq<'Second> * Func<'First, 'Second, 'Result> -> seq<'Result>
<Extension()>
Public Function Zip(Of TFirst, TSecond, TResult) (first As IEnumerable(Of TFirst), second As IEnumerable(Of TSecond), resultSelector As Func(Of TFirst, TSecond, TResult)) As IEnumerable(Of TResult)

型パラメーター

TFirst

1 番目の入力シーケンスの要素の型。The type of the elements of the first input sequence.

TSecond

2 番目の入力シーケンスの要素の型。The type of the elements of the second input sequence.

TResult

結果のシーケンスの要素の型。The type of the elements of the result sequence.

パラメーター

first
IEnumerable<TFirst>

マージする 1 番目のシーケンス。The first sequence to merge.

second
IEnumerable<TSecond>

マージする 2 番目のシーケンス。The second sequence to merge.

resultSelector
Func<TFirst,TSecond,TResult>

2 つのシーケンスの要素をマージする方法を指定する関数。A function that specifies how to merge the elements from the two sequences.

戻り値

IEnumerable<TResult>

2 つの入力シーケンスのマージされた要素が格納されている IEnumerable<T>An IEnumerable<T> that contains merged elements of two input sequences.

例外

first または secondnull です。first or second is null.

次のコード例は、Zip メソッドを使用して2つのシーケンスを結合する方法を示しています。The following code example demonstrates how to use the Zip method to merge two sequences.

int[] numbers = { 1, 2, 3, 4 };
string[] words = { "one", "two", "three" };

var numbersAndWords = numbers.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.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

注釈

このメソッドは、遅延実行を使用して実装されます。This method is implemented by using deferred execution. イミディエイトの戻り値は、アクションを実行するために必要なすべての情報を格納するオブジェクトです。The immediate return value is an object that stores all the information that is required to perform the action. か、呼び出すことによって、オブジェクトが列挙されるまで、このメソッドによって表されるクエリは実行されません、GetEnumeratorメソッドを使用して直接またはforeachVisual C# またはFor EachVisual Basic で。The query represented by this method is not executed until the object is enumerated either by calling its GetEnumerator method directly or by using foreach in Visual C# or For Each in Visual Basic.

メソッドは、最初のシーケンスの各要素を、2番目のシーケンスの同じインデックスを持つ要素とマージします。The method merges each element of the first sequence with an element that has the same index in the second sequence. シーケンスに同じ数の要素が含まれていない場合、メソッドは、そのうちの1つの末尾に到達するまでシーケンスをマージします。If the sequences do not have the same number of elements, the method merges sequences until it reaches the end of one of them. たとえば、1つのシーケンスに3つの要素があり、もう一方のシーケンスに4つの要素がある場合、結果のシーケンスには3つの要素のみが含まれます。For example, if one sequence has three elements and the other one has four, the result sequence will have only three elements.

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

指定された 2 つのシーケンスの要素を持つタプルのシーケンスを生成します。Produces a sequence of tuples with elements from the two specified sequences.

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

型パラメーター

TFirst

1 番目の入力シーケンスの要素の型。The type of the elements of the first input sequence.

TSecond

2 番目の入力シーケンスの要素の型。The type of the elements of the second input sequence.

パラメーター

first
IEnumerable<TFirst>

マージする 1 番目のシーケンス。The first sequence to merge.

second
IEnumerable<TSecond>

マージする 2 番目のシーケンス。The second sequence to merge.

戻り値

IEnumerable<ValueTuple<TFirst,TSecond>>

最初のシーケンスと 2 番目のシーケンスから取得された要素が、その順序で備えられているタプルのシーケンス。A sequence of tuples with elements taken from the first and second sequences, in that order.

適用対象