Supongamos que tengo un código que se parece a esto:C# Código Simplificación de consulta: La secuencial Foreach Loops
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)
}
No puedo combinar las cosas en un gran bucle de esta manera:
foreach (type x in list y)
{
//dostuff1(x)
//dostuff2(x)
//dostuff3(x)
//dostuff4(x)
//dostuff5(x)
}
Si lo hace, cambiaría el orden ¿Algún comentario sobre las mejores formas de simplificar el código en C#?
me imagino que podía resolver este problema mediante la creación de una función como esta, aunque yo prefiero dejarlo como está de forzar a los futuros lectores de mi código para entender 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 - Los delegados son mucho más agradable en C# que en VB.NET :( –