Angenommen, ich habe einige Codes, der wie folgt aussieht:C# -Code Vereinfachung Abfrage: Die sequenzielle foreach-Schleife
foreach(type x in list y)
{
//dostuff1(x)
}
foreach(type x in list y)
{
//dostuff2(x)
}
foreach(type x in list y)
{
//dostuff3(x)
}
foreach(type x in list y)
{
//dostuff4(x)
}
foreach(type x in list y)
{
//dostuff5(x)
}
ich die Dinge nicht in einen großen for-Schleife wie folgt kombinieren:
foreach (type x in list y)
{
//dostuff1(x)
//dostuff2(x)
//dostuff3(x)
//dostuff4(x)
//dostuff5(x)
}
Doing so würde die Reihenfolge ändern. Irgendwelche Kommentare zu den besten Möglichkeiten, den Code in C# einfacher zu machen?
Ich stelle mir vor ich dieses Problem durch die Schaffung einer Funktion wie diese lösen könnte, obwohl ich eher den Weg verlassen würde es als zukünftige Leser meines Code yield
zu verstehen zwingen:
void func(type x)
{
dostuff1(x)
yield 0;
dostuff2(x)
yield 0;
dostuff3(x)
yield 0;
dostuff4(x)
yield 0;
dostuff5(x)
yield break;
}
for (int i = 0; i<5; ++i)
{
foreach (type x in list y)
{
//Call func(x) using yield semantics, which I'm not going to look up right now
}
}
+1 - Die Delegierten sind so viel schöner in C# als in VB.NET :( –