Supposons que j'ai un code qui ressemble à ceci:C# Code de simplification Question: Séquentielle Foreach boucles
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)
}
Je ne peux combiner les choses dans une grande boucle comme ceci:
foreach (type x in list y)
{
//dostuff1(x)
//dostuff2(x)
//dostuff3(x)
//dostuff4(x)
//dostuff5(x)
}
Ce faisant, changerait l'ordre. Des commentaires sur les meilleurs moyens de rendre le code plus simple en C#?
j'imagine que je pouvais résoudre ce problème en créant une fonction de ce genre, mais je préfère le laisser comme ça que la force futurs lecteurs de mon code pour comprendre yield
:
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 - Les délégués sont bien mieux en C# que dans VB.NET :( –