Существует несколько вариантов решения этой проблемы:
Использование вспомогательной переменной
bool exit = false;
for (int i = 0; i < length && !exit; i++)
{
switch(enum)
{
case Enum.case_which_breaks:
exit = true;
break;
// other cases
}
// some other code, which may use `i`
}
Использование вспомогательного метода
Это было бы проще, если бы вы могли провести рефакторинг всего for
блок во вспомогательный метод. В этом случае вы будете использовать return
вместо break
.
private Result HandleInternally(int length, Enum enum, Request params)
{
for (int i = 0; i < length; i++)
switch (enum)
{
case Enum.case_which_breaks:
Result result = new Result(); //populate the result
return result;
// other cases
}
}
А затем в коде потребления просто вызовите метод.