我有一个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然后_id3 = 0。这是可能的或将我只需要写几个如果语句而不是使用循环?
@Oliver我实际调用这一切都从一个单独的类,所以我不会越过复选框为复选框这个另一类,我只是路过的真或假的值作为类的字符串。 – aantiix
@ doby48:我相应地改变了我的答案。将复选框存储在数组中的优点是可以反复访问它们,并且它们将始终显示它们的当前状态,因为数组只保存对它们的引用。因此,如果需要保留复选框数组并从其中获取布尔数组,可能是个好主意,如下所示:'bool [] checked = _checkBoxes.Select(cb => cb.Checked).ToArray();'。 –