Вы можете создать собственный итератор (используя оператор yield). Итератор возвращает каждую строку (или несколько строк), которую вы хотите выполнить (используя анонимные методы). Затем вы можете перебирать каждую строку по одной и проверять условие внутри цикла. Вот как это будет выглядеть:
public delegate void DelegateType();
public static IEnumerable< DelegateType > GetStatements()
{
// ---- replace with your code below ----
yield return delegate() { Console.WriteLine("statement 1"); };
yield return delegate() { Console.WriteLine("statement 2"); };
yield return delegate() { Console.WriteLine("statement 3"); };
yield return delegate()
{
// You can return multiples statements in one block.
Console.WriteLine("statement 4");
Console.WriteLine("statement 5");
};
}
Вот как вы должны выполнять итерацию ваших операторов и проверять условие после каждого оператора.
IEnumerable<DelegateType> statementList = GetStatements();
foreach (DelegateType statement in statementList)
{
statement(); // Here is where your statement executes.
if (!ConditionContinue()) // Check your condition here.
{
break;
}
}