Foreach-Schleife in C # neu starten?
Wie kann ich starten Sie eine foreach
- Schleife in C#??
Beispiel:
Action a;
foreach(Constrain c in Constrains)
{
if(!c.Allows(a))
{
a.Change();
restart;
}
}
restart
hier ist wie continue
oder break
aber es startet den foreach-von Anfang an
Es ist wie das setzen der Zähler von einer for
Schleife wieder auf 0..
Ist das möglich in C#?
Edit:ich möchte Ihnen beiden danken, dass Mehrdad Afshari und Mahesh Velaga, dass ich entdecke einen Fehler (index=0) in meine aktuelle Umsetzung wäre das nicht entdeckt worden sonst..
InformationsquelleAutor der Frage Betamoo | 2011-01-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die gute alte
goto
:Wenn Sie diagnostiziert gotophobia 100% der Zeit aus irgendeinem Grund (das ist nicht eine gute Sache, ohne einen Grund), können Sie versuchen, mit einer fahne statt:
InformationsquelleAutor der Antwort Mehrdad Afshari
Einer Weise, die Sie tun können, für die, wie du bereits erwähnt hast:
InformationsquelleAutor der Antwort Mahesh Velaga
Zwar ein sehr Alter thread - keine Antworten bezahlt gebührend auf die Semantik des Codes:
a
a
bricht einer von Ihnen, versuchen Sie einen anderena
und schieben, die durch die Kette.Dass
a.Change()
sollten getrennt von der constraint-checking-Schleife, die auch die Einhaltung der CQS-Prinzip:Kein goto, keine hässliche Schleifen, einfach und sauber. </self-zurück-slapping>
InformationsquelleAutor der Antwort chiccodoro
InformationsquelleAutor der Antwort Unmesh Kondolikar
InformationsquelleAutor der Antwort Eivind T