ホームページ >バックエンド開発 >C++ >C# で入れ子になったループを効率的に抜け出すにはどうすればよいですか?

C# で入れ子になったループを効率的に抜け出すにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-17 04:32:09368ブラウズ

How Can I Efficiently Break Out of Nested Loops in C#?

C# 入れ子になったループの正常な終了メソッド

C# のネストされたループを扱う場合、すべてのループを早めに終了する必要がある場合があります。従来のアプローチはブール フラグや GOTO ステートメントに依存することが多く、どちらもコードの可読性とパフォーマンスに影響を与えます。

解決策

より洗練されたアプローチは、匿名メソッドまたはローカル関数を使用することです。匿名メソッドでは、return ステートメントはメソッドを早期に終了し、それによってすべてのネストされたループから抜け出すことができます。このアプローチは比較的良好に実行され、コードの可読性が向上します。

匿名メソッドの使用例

<code class="language-csharp">// 创建一个匿名方法
Action work = delegate
{
    for (int x = 0; x < 10; x++)
    {
        for (int y = 0; y < 10; y++)
        {
            if (x == 5 && y == 5)
            {
                return; // 退出匿名方法,从而退出两个循环
            }
        }
    }
};

work(); // 调用匿名方法</code>

ローカル関数の使用例

C# 7 では、入れ子になったループを終了するための構文的により簡潔な代替手段を提供するローカル関数が導入されました。

<code class="language-csharp">// 创建一个局部函数
void Work()
{
    for (int x = 0; x < 10; x++)
    {
        for (int y = 0; y < 10; y++)
        {
            if (x == 5 && y == 5)
            {
                return; // 退出局部函数,从而退出两个循环
            }
        }
    }
}

Work(); // 调用局部函数</code>

概要

匿名メソッドまたはローカル関数を使用すると、効率的で保守が容易な C# ネストされたループの早期終了メソッドが提供されます。これらのメソッドはコードの可読性を向上させ、ブール フラグや GOTO ステートメントなどの従来のメソッドに代わるよりパフォーマンスの高いメソッドを提供します。

以上がC# で入れ子になったループを効率的に抜け出すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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