Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Melepaskan Gelung Bersarang dengan Cekap dalam C#?

Bagaimanakah Saya Boleh Melepaskan Gelung Bersarang dengan Cekap dalam C#?

DDD
DDDasal
2025-01-17 04:21:11236semak imbas

How Can I Efficiently Escape Nested Loops in C#?

Memecahkan gelung bersarang C# dengan cekap

Dalam senario yang melibatkan gelung bersarang, adalah penting untuk menukar antara gelung dalam dan luar dengan cepat. Dua kaedah berikut boleh mencapai matlamat ini dengan berkesan:

Gunakan kaedah tanpa nama

Daripada mengurus bendera boolean dalam gelung, pertimbangkan untuk menggunakan kaedah tanpa nama. Ini memisahkan lelaran gelung daripada mekanisme keluar dan membolehkan keluar pantas melalui pernyataan return.

Contoh:

<code class="language-csharp">// 创建一个封装嵌套循环的匿名方法
Action work = delegate
{
    for (int x = 0; x < 10; x++)
    {
        for (int y = 0; y < 10; y++)
        {
            if (/* 退出条件 */) return;
        }
    }
};

work(); // 调用匿名方法执行嵌套循环</code>

Gunakan fungsi setempat (C# 7 dan ke atas sahaja)

C# 7 memperkenalkan fungsi tempatan, yang menyediakan alternatif yang lebih cekap dan boleh dibaca kepada kaedah tanpa nama. Fungsi setempat boleh diisytiharkan di dalam gelung luar dan ditamatkan menggunakan pernyataan return.

Contoh:

<code class="language-csharp">// 定义一个处理嵌套循环的局部函数
void Work()
{
    for (int x = 0; x < 10; x++)
    {
        for (int y = 0; y < 10; y++)
        {
            if (/* 退出条件 */) return;
        }
    }
}

Work(); // 调用局部函数执行嵌套循环</code>

Teknik ini menyediakan cara yang cekap untuk keluar dari gelung bersarang dengan cara terkawal. Elakkan menggunakan pengecualian kerana ia datang dengan prestasi prestasi yang besar.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melepaskan Gelung Bersarang dengan Cekap dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn