У меня есть список переменных в ASP.NET (C#), который я пытаюсь выполнить без записи десятков операторов If. То, что я надеялся сделать, просто ссылается на каждую из них с переменной и добавляет ее к имени переменной. Так что-то вроде следующего:Переключить переменную в имени переменной
string _id1 = Id1CheckBox.Checke.ToString();
string _id2 = Id2CheckBox.Checke.ToString();
string _id3 = Id3CheckBox.Checke.ToString();
int x = 1;
while (x < 20)
{
if ("_id&" + x == "True")
{
_id + x = x.ToString();
}
else
{
_id + x = 0;
}
x++;
}
Логика, что я пытаюсь сделать, у меня есть несколько флажков на форме, Id1CheckBox, Id2CheckBox, Id3CheckBox и т.д. Мне нужно получить эти значения как строки, так что я могу передать их в качестве параметров в SQL-запросе. Таким образом, в принципе, если Id1CheckBox = true, то _id1 = 1. Если Id2CheckBox = true, то _id2 = 2. Если какие-то ложные, тогда я хотел бы получить что-то вроде If Id3CheckBox = false then _id3 = 0. Возможно ли это или мне просто нужно написать несколько Если утверждения вместо использования цикла?
@Oliver Я на самом деле называю это все из отдельного класса, так что я не проходя над CheckBoxes, как флажки этого другого классом, я только передавая значение истины или лжи как строка для класса. – aantiix
@ doby48: Я изменил свой ответ соответственно. Сохранение флажков в массиве имеет то преимущество, что вы можете обращаться к ним повторно, и они всегда будут показывать свое текущее состояние, поскольку массив содержит только ссылки на них. Поэтому было бы неплохо сохранить массив checkbox и получить из него массив bool, если это необходимо: 'bool [] checked = _checkBoxes.Select (cb => cb.Checked) .ToArray();'. –