Пусть у меня есть некоторый код, который выглядит следующим образом:C# код Упрощение запроса: Последовательная 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)
}
Я не могу сочетать вещи в один большой цикл как это:
foreach (type x in list y)
{
//dostuff1(x)
//dostuff2(x)
//dostuff3(x)
//dostuff4(x)
//dostuff5(x)
}
Это изменит порядок. Любой комментарий о лучших способах сделать код проще на C#?
Я полагаю, я мог бы решить эту проблему, создав такую функцию, хотя я предпочел бы оставить его таким, каким он является, чем заставить будущих читателей моего кода, чтобы понять 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 - Делегаты в C# намного лучше, чем в VB.NET :( –