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>
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>
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!