繁体   English   中英

C#在for循环中更改数组名称

[英]c# change array name in a for loop

是否可以在for循环中更改arrayname? 我的数组称为T1,T2 T3 ...现在我想将T后面的数字替换为int。 这是我的代码:

sql = con.CreateCommand();
sql.CommandText = "select [ZeitH] from [Tisch 1] where [Datum]='" + datum + "';";
OleDbDataReader reader = sql.ExecuteReader();
while (reader.Read())
{
    for (int i = 0; i <= 10; i++)
    {
        if (reader.GetInt32(0).ToString() == (i + 10).ToString())
        {
            T1[i] = false;
            T1[i + 1] = false;
            T1[i + 2] = false;
            T1[i + 3] = false;
        }
    }
}

如果我没看错-您可以创建一个引用(名称Temp ),并将其分配给T1。然后在for循环中可以迭代该Temp引用,如果要更改数组,可以将T2分配给Temp

sql = con.CreateCommand();
sql.CommandText = "select [ZeitH] from [Tisch 1] where [Datum]='" + datum + "';";
OleDbDataReader reader = sql.ExecuteReader();

var Temp = T1;

while (reader.Read())
{
    for (int i = 0; i <= 10; i++)
    {
        if (reader.GetInt32(0).ToString() == (i + 10).ToString())
        {
            if( your condition)
            {
                Temp = T2;
            }

            Temp[i] = false;
            Temp[i + 1] = false;
            Temp[i + 2] = false;
            Temp[i + 3] = false;
        }
    }
}

如果我理解正确,您希望根据情况将T后面的“ 1”替换为其他数字。

我建议您将数组存储在列表或另一个数组中(任何有序集合都可以),而不要保留x Tx变量。

就像是:

List<bool[]> list = new List() { T1, T2, T3, T4, T5, T6 }; // add all your arrays, best generate the arrays in a loop and add them to the list in that loop

for (int i = 0; i <= 10; i++)
{
    if (reader.GetInt32(0).ToString() == (i + 10).ToString())
    {
        if(someCondition)
        {
            x = 1; // eg. take the T2 array if condition matches
        }
        else
        {
            x = 2; // eg. take the T3 array if condition does not match
        }
        list[x][i] = false;
        list[x][i + 1] = false;
        list[x][i + 2] = false;
        list[x][i + 3] = false;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM