MSDN ライブラリ
情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

Enumerable.Zip<TFirst, TSecond, TResult> メソッド

2013/12/12

指定された述語関数を使用して 2 つのシーケンスをマージします。

Namespace:  System.Linq
アセンブリ:  System.Core (System.Core.dll 内)

public static IEnumerable<TResult> Zip<TFirst, TSecond, TResult>(
	this IEnumerable<TFirst> first,
	IEnumerable<TSecond> second,
	Func<TFirst, TSecond, TResult> resultSelector
)

型パラメーター

TFirst

1 番目の入力シーケンスの要素の型。

TSecond

2 番目の入力シーケンスの要素の型。

TResult

結果のシーケンスの要素の型。

パラメーター

first
型: System.Collections.Generic.IEnumerable<TFirst>
マージする 1 番目のシーケンス。
second
型: System.Collections.Generic.IEnumerable<TSecond>
マージする 2 番目のシーケンス。
resultSelector
型: System.Func<TFirst, TSecond, TResult>
2 つのシーケンスの要素をマージする方法を指定する関数。

戻り値

型: System.Collections.Generic.IEnumerable<TResult>
2 つの入力シーケンスのマージされた要素が格納されている IEnumerable<T>

使用上の注意

Visual Basic および C# では、このメソッドを、IEnumerable<TFirst> 型の任意のオブジェクトのインスタンス メソッドとして呼び出すことができます。インスタンス メソッド構文を使用してこのメソッドを呼び出す場合は、最初のパラメーターを省略します。

例外条件
ArgumentNullException

first または secondnull です。

このメソッドは遅延実行を使用して実装されます。アクションの実行に必要なすべての情報を格納するオブジェクトがすぐに返されます。このメソッドで表されるクエリは、オブジェクトの GetEnumerator メソッドを直接呼び出すか、または Visual C# の foreach または Visual Basic の For Each を使用してオブジェクトが列挙されるまで、実行されません。

このメソッドは最初のシーケンスの各要素を、2 番目のシーケンスに同じインデックスを持つ要素と結合します。シーケンスの要素の数が異なる場合、このメソッドは、いずれかのシーケンスの末尾に到達するまでこれらのシーケンスを結合します。たとえば、1 つのシーケンスに 3 つの要素があり、もう一方のシーケンスに 4 つの要素がある場合、結果のシーケンスには 3 つの要素のみがあります。

次のコード例では、Zip<TFirst, TSecond, TResult> メソッドを使用して 2 つのシーケンスをマージする方法を示します。


      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)
         outputBlock.Text += item + "\n";

      // This code produces the following output:

      // 1 one
      // 2 two
      // 3 three



Windows Phone OS

サポート: 8.0

表示:
© 2016 Microsoft