Maison > développement back-end > C++ > Comment sortir efficacement des boucles imbriquées en C# ?

Comment sortir efficacement des boucles imbriquées en C# ?

Mary-Kate Olsen
Libérer: 2025-01-17 04:17:07
original
500 Les gens l'ont consulté

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

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal