Вопрос

Я использую Visual Studio 2010 Beta 2, чтобы начать обучение использованию WF4.Я работаю в конструкторе над созданием файла xaml.Я добавил действие ForEach , и внутри этого действия ForEach есть блок-схема, которая выполняет некоторую условную обработку.Я хочу иметь возможность вырваться из ForEach, если одно из условий выполнено, но не могу понять, как это сделать.В коде C #, лежащем в основе файла, это было бы просто для того, чтобы выдать break;, но в конструкторе рабочих процессов xaml я не вижу никакого механизма для выхода из цикла.Есть какие-нибудь предложения?

Это было полезно?

Решение

В WF4 нет эквивалента разрыва.Итак, либо вам нужно начать добавлять условную логику, чтобы пропустить следующие циклы, либо создать исключение и перехватить его за пределами ForEach и продолжить.

И я согласен, что ни то, ни другое не является очень хорошим вариантом:-(

Другие советы

Использование действия While или DoWhile вместо ForEach может быть лучшим вариантом с учетом ограничений действия на управление итерациями.Это немного уродливее, но работает именно так, как вы хотите от своей итерации.

Условие может проверять bool, например Broken, и переменная счетчика для сравнения ее с длиной коллекций.Я не уверен, что это лучше всего подходит для вашего сценария или для коллекции, которую вы зацикливаете, но кажется жизнеспособным вариантом.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top