Comment puis-je mettre en œuvre pour les autres et foreach-else en C#?
Je sais qu'ils n'existent pas, mais sont-il des alternatives? Comme ceci:
for (int i = 0; !connected && i < 100; i++)
{
Thread.Sleep(1);
}
else throw new ConnectionError();
- Sauf si vous avez réellement donner les définitions complètes de ce que ces petites constructions de faire, la question n'est pas réel.
- Sons étrangement Pythonic...
- Nous donner le scénario que vous souhaitez utiliser ces constructions, je parie que vous pouvez toujours mettre un if - else autour de votre pour ou boucle foreach.
- Je doute que le pseudo-code est ce que leppie avait à l'esprit à propos de "les définitions complètes"...
Vous devez vous connecter pour publier un commentaire.
Le Python Construire de foreach-le reste est comme ça:
L'autre s'exécute uniquement si la pause n'est pas appelée au cours de la boucle foreach
Un C# équivalent:
Source: Visual C# Developer Center
Sûr:
Utiliser l'un de la fantaisie des suggestions faites par les autres affiches
Utiliser une méthode qui effectue la boucle, au lieu de
break
, vous pouvezreturn
pour éviter l'exécution de code ci-dessous la boucleUtiliser une variable booléenne que vous pouvez définir avant de vous
break
, et test qu'après la boucleUtilisation
goto
au lieu debreak
C'est une drôle de motif si vous me demandez. "Foreach" est toujours de commencer donc le mot "autre" n'a pas de sens là.
goto
. Si vous faites vos propres goto, alors vous avez encore le même contrôle de flux et n'ont donc pas spagetified votre code. Trouble de la est, de ce que vous pourriez accidentellement spagetify dans certains, plus tard pour changer.Si vous faites allusion à l' pour le reste et tout les autres constructions en Python, il y a une base
IEnumerable<T>
méthode d'extension qui simule un foreach-décrire dans cet article, avec la mise en œuvre suivants:Googler il m'a donné : http://www-jo.se/f.pfleger/.net-for-else