ホームページ >バックエンド開発 >C++ >C# の Zip 関数を使用すると、複数のリストの同時反復処理をどのように簡素化できるでしょうか?

C# の Zip 関数を使用すると、複数のリストの同時反復処理をどのように簡素化できるでしょうか?

DDD
DDDオリジナル
2025-01-04 19:51:10373ブラウズ

How Can C#'s Zip Function Simplify Iterating Over Multiple Lists Simultaneously?

複数のリストまたは配列の同時反復: 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 サイトの他の関連記事を参照してください。

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