複数のリストまたは配列の同時反復: C# の Zip 関数
単一の foreach ステートメントで複数のコレクションを効率的に反復するために、C# は組み込みのZip機能。この操作は .NET 4 以降で利用可能であり、異なるシーケンスの要素をペアにするプロセスを簡素化します。
Zip 関数を利用するには、2 つ以上のコレクションでこの関数を呼び出すだけです。たとえば、2 つのリストを含む次の例を考えてみましょう:
var numbers = new [] { 1, 2, 3, 4 }; var words = new [] { "one", "two", "three", "four" };
Zip 関数を使用すると、両方のリストの要素を結合する新しいシーケンスを作成でき、結果としてタプルのシーケンスが生成されます:
var numbersAndWords = numbers.Zip(words, (n, w) => new { Number = n, Word = w });
これで、foreach ループを使用して、numbersAndWords シーケンスを反復処理できます。
foreach(var nw in numbersAndWords) { Console.WriteLine(nw.Number + nw.Word); }
これ連結された値を出力します:
1one 2two 3three 4four
または、名前付きフィールドで匿名型を使用する代わりに、Tuple とその静的 Tuple.Create ヘルパーを利用することもできます:
foreach (var nw in numbers.Zip(words, Tuple.Create)) { Console.WriteLine(nw.Item1 + nw.Item2); }
Zip 関数は、C# で複数のコレクションを同時に反復処理するための洗練された効率的なソリューションを提供します。これにより、異なるシーケンスの要素を組み合わせるプロセスが簡素化され、コードがより読みやすく、保守しやすくなります。
以上がC# の Zip 関数を使用すると、複数のリストの同時反復処理をどのように簡素化できるでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。