C# の拡張 ForEach による複数のリストの同時反復
foreach ステートメントの機能を強化することで、C# は複数のリストを反復処理するための便利なソリューションを提供します。同時に配列します。 Zip 操作として知られるこの高度なテクニックは、プログラミング タスクの効率と柔軟性を高めます。
Zip 操作を理解する
.NET 4 で導入された Zip 操作。開発者は、複数のシーケンスの要素を組み合わせてペアにすることができます。これにより、プログラマーはこれらのペアを反復処理し、各リストから対応する要素にアクセスできるようになります。
反復リストへの Zip の適用
その実用性を示すために、次の例を考えてみましょう。
var numbers = new [] { 1, 2, 3, 4 }; var words = new [] { "one", "two", "three", "four" }; // Zip pairs numbers and words into a sequence of anonymous types var numbersAndWords = numbers.Zip(words, (n, w) => new { Number = n, Word = w });
このコードを使用して、numbersAndWords という名前のシーケンスを作成します。このシーケンスには、次の匿名型が含まれています。 2 つの名前付きプロパティ: Number と Word。シーケンス内の各項目は、数字と単語のリストの対応する要素のペアを表します。
拡張 ForEach による反復
シーケンスが作成されたら、ペアを反復するための foreach ステートメント:
foreach(var nw in numbersAndWords) { Console.WriteLine(nw.Number + nw.Word); }
このループは、ペアになっている各項目を反復し、アクセスします。それぞれのリストの数値と単語の両方。
代替 ZIP 構文
匿名型の使用に加えて、タプルを使用してコードを圧縮することもできます。
foreach (var nw in numbers.Zip(words, Tuple.Create)) { Console.WriteLine(nw.Item1 + nw.Item2); }
このアプローチでは、静的な Tuple.Create ヘルパー メソッドを利用して、明示的なしでタプルを作成します ブレース。ただし、タプル要素はItem1とItem2を使用してインデックス付けされるため、その順序に意識的に注意する必要があることを覚えておくことが重要です。
以上がC# の Zip 操作で複数のリストの同時反復をどのように強化できるでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。