Quitter efficacement la boucle imbriquée C#
En programmation, les boucles imbriquées sont souvent utilisées pour parcourir plusieurs collections ou effectuer des calculs complexes. Cependant, vous devrez parfois quitter les boucles internes et externes plus tôt, ce qui peut créer des problèmes de performances et d'efficacité.
Question :
Si vous avez une boucle for imbriquée et que vous souhaitez quitter efficacement les deux boucles (interne et externe), quel est le moyen le plus rapide ? Vous hésiterez peut-être à utiliser des valeurs booléennes ou des instructions goto en raison de problèmes de performances ou de préférences de style.
Solution :
Bien qu'il soit possible d'utiliser l'instruction goto, elle est généralement considérée comme une approche obsolète et inefficace. Considérez les alternatives suivantes :
1. Méthode anonyme (C#) :
Les méthodes anonymes permettent de définir une fonction sans préciser son nom. Ceci est utile dans les situations où vous devez créer un comportement de boucle personnalisé sans la surcharge d'une déclaration de fonction complète. Dans les méthodes anonymes, vous pouvez utiliser des instructions return pour quitter les boucles internes et externes.
Exemple :
<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. Fonctions locales (C# 7 et supérieur) :
Les fonctions locales sont une fonctionnalité introduite dans C# 7 qui vous permet de déclarer des fonctions dans d'autres méthodes. Cela produit des effets similaires aux méthodes anonymes, mais avec une syntaxe plus propre et plus expressive.
Exemple :
<code class="language-csharp">// 局部函数(在另一个方法内部声明) void Work() { for (int x = 0; x < 10; x++) { for (int y = 0; y < 10; y++) { if (/* 退出条件 */) return; } } }</code>
Ces méthodes offrent un moyen efficace et élégant de quitter une boucle imbriquée dans une seule ligne de code. Ils peuvent être utilisés dans les situations où vous devez mettre fin à l'exécution de la boucle plus tôt et poursuivre l'exécution avec la section de code suivante.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!