Heim > Backend-Entwicklung > C++ > Wie kann man in C# effizient aus verschachtelten Schleifen ausbrechen?

Wie kann man in C# effizient aus verschachtelten Schleifen ausbrechen?

Mary-Kate Olsen
Freigeben: 2025-01-17 04:17:07
Original
500 Leute haben es durchsucht

How to Efficiently Break Out of Nested Loops in C#?

Effizientes Beenden der verschachtelten C#-Schleife

In der Programmierung werden verschachtelte Schleifen häufig verwendet, um mehrere Sammlungen zu durchlaufen oder komplexe Berechnungen durchzuführen. Manchmal müssen Sie jedoch möglicherweise die inneren und äußeren Schleifen vorzeitig verlassen, was zu Leistungs- und Effizienzproblemen führen kann.

Frage:

Wenn Sie eine verschachtelte for-Schleife haben und beide Schleifen (innere und äußere) effizient verlassen möchten, was ist der schnellste Weg? Möglicherweise zögern Sie aufgrund von Leistungsbedenken oder Stilpräferenzen, boolesche Werte oder goto-Anweisungen zu verwenden.

Lösung:

Obwohl es möglich ist, die goto-Anweisung zu verwenden, wird sie im Allgemeinen als veralteter und ineffizienter Ansatz angesehen. Betrachten Sie die folgenden Alternativen:

1. Anonyme Methode (C#):

Anonyme Methoden ermöglichen es Ihnen, eine Funktion zu definieren, ohne ihren Namen anzugeben. Dies ist in Situationen nützlich, in denen Sie benutzerdefiniertes Schleifenverhalten ohne den Aufwand einer vollständigen Funktionsdeklaration erstellen müssen. In anonymen Methoden können Sie Return-Anweisungen verwenden, um die inneren und äußeren Schleifen zu verlassen.

Beispiel:

<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>
Nach dem Login kopieren

2. Lokale Funktionen (C# 7 und höher):

Lokale Funktionen sind eine in C# 7 eingeführte Funktion, mit der Sie Funktionen innerhalb anderer Methoden deklarieren können. Dies bietet ähnliche Effekte wie anonyme Methoden, jedoch mit einer saubereren, ausdrucksstärkeren Syntax.

Beispiel:

<code class="language-csharp">// 局部函数(在另一个方法内部声明)
void Work()
{
    for (int x = 0; x < 10; x++)
    {
        for (int y = 0; y < 10; y++)
        {
            if (/* 退出条件 */) return;
        }
    }
}</code>
Nach dem Login kopieren

Diese Methoden bieten eine effiziente und elegante Möglichkeit, eine verschachtelte Schleife in einer einzigen Codezeile zu verlassen. Sie können in Situationen verwendet werden, in denen Sie die Schleifenausführung vorzeitig beenden und mit der Ausführung mit dem nächsten Codeabschnitt fortfahren müssen.

Das obige ist der detaillierte Inhalt vonWie kann man in C# effizient aus verschachtelten Schleifen ausbrechen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage