Несколько сравнений на С#

ftbwork10

Client
Регистрация
29.05.2017
Сообщения
442
Благодарностей
697
Баллы
93
Всем привет

есть переменная status_account

она имеет значения 1, 2, 3 ... 100

проверяю их так

'{-Variable.status_account-}' == '1'
Установить значение переменной ACC - banned

'{-Variable.status_account-}' == '2'
Установить значение переменной ACC - blocked

и там много переменных, из-за кубиков получается большое полотно, как можно это в C# сделать?)

чтобы исходя от числа ответ 1, 2, 3 оно назначало статус

1-banned
2-blocked

и т. д.
 

viol2021

Client
Регистрация
12.01.2021
Сообщения
481
Благодарностей
179
Баллы
43
Через switch не вариант?
 

WebBot

Client
Регистрация
04.04.2015
Сообщения
1 716
Благодарностей
1 375
Баллы
113

ftbwork10

Client
Регистрация
29.05.2017
Сообщения
442
Благодарностей
697
Баллы
93

ftbwork10

Client
Регистрация
29.05.2017
Сообщения
442
Благодарностей
697
Баллы
93
C#:
switch(project.Variables["status_account"].Value){
    case "1" : project.Variables["ACC"].Value = "banned"; break;
    case "2" : project.Variables["ACC"].Value = "blocked"; break;
    // дальше аналогично ....
}
case "1" : project.Variables["ACC"].Value = "banned"; break; а можно две переменные указать? ACC и ACC1?
 

BAZAg

Client
Регистрация
08.11.2015
Сообщения
1 760
Благодарностей
2 398
Баллы
113
Честно говоря, свитч конечно хорошо, но все же, данную задачу нужно решать по другому (так как конечное количество статусов нам не известно, может оказаться так, что их окажется например 10, а завтра захотим ещё добавить парочку - и что тогда - переписывать код?).
Предлагаю решать вопрос кардинально по другому, не используя switch - сохраняем себе где-то коллекцию/словарь/массив с парами ключ/значение, и просто дёргаем нужное значение по ключу.
Пример:
C#:
var dic = new Dictionary<int, string>(){
    {1, "banned"},
    {2, "blocked"}
};

int status = int.Parse(project.Variables["status_account"].Value);
project.Variables["ACC"].Value = dic[status];
И тогда, если вдруг нам нужно много статусов добавить - просто добавляем нужные значения в словарь, без переписывания всей логики во всех кубиках (словарь можно хранить в общем коде как static например или в project.Context.
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)