Как использовать списки условий и циклы в C#, чтобы избежать длинных повторяющихся операторов if-elseC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как использовать списки условий и циклы в C#, чтобы избежать длинных повторяющихся операторов if-else

Сообщение Anonymous »

Как я могу использовать условные списки в C# с небольшим циклом, чтобы избежать длинных повторяющихся операторов блока if-else?
Очень легко написать кучу операторов if-else для множество различных условий, действие которых очень повторяется, но с немного разными значениями переменных, которые нужно установить.
Рассмотрим этот пример:

Код: Выделить всё

if (condition1 == 0 || condition2 == 0)
{
variable1 = 1;
variable2 = 100;
Reason = "Status is this";
}
else if (condition3 == 1 || condition4 == 100)
{
variable1 = 1;
variable2 = 100;
Reason = "Status is something else";
}
else if (condition5 == 2 || condition6 == 10)
{
variable1 = 1;
variable2 = 100;
Reason = "Status is more";
}
Представьте, что становится необходимым больше условий, и вы просто добавляете больше else-if с аналогичными действиями, за исключением того, что одна переменная задается уникально.
Как написать это оптимизированно, чтобы код выглядел сжатым (легко читаемым), а добавление дополнительных условий - это просто добавление одной строки?
Мое предложение следующее:

Код: Выделить всё

var ConditionsList - new List
{
(condition1 == 0 || condition2 == 0, "Status is this"),
(condition3 == 1 || condition4 == 100, "Status is something else"),
(condition5 == 2 || condition6 == 10, "Status is more")
};
foreach (var condition in ConditionsList)
{
if(condition.Condition)
{
variable1 = 1;
variable2 = 100;
Reason = condition.Reason;
break; //optional
}
}
Расширение условий — это просто добавление еще одной строки в список условий. Кроме того, можно добавить в список другие переменные, если они имеют уникальные или разные значения. Код занимает не так много места, поэтому его легче читать и просматривать за один раз.
После того, как я реализовал это один раз в своем коде, я был удивлен, обнаружив, что его можно применять во многих местах. с некоторыми вариациями.
Есть ли лучший способ решить эту проблему или нет?

Подробнее здесь: https://stackoverflow.com/questions/788 ... tive-if-el
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»