ホームページ >バックエンド開発 >C++ >C# の Zip 操作で複数のリストの同時反復をどのように強化できるでしょうか?

C# の Zip 操作で複数のリストの同時反復をどのように強化できるでしょうか?

DDD
DDDオリジナル
2024-12-31 09:23:10485ブラウズ

How Can C#'s Zip Operation Enhance Simultaneous Iteration of Multiple Lists?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。