如何更新到2D数组?

时间:2009-12-15 13:21:41

标签: c# multidimensional-array

我正在调整这个循环以及用我的方法的输出填充数组的内容,我不确定最后一部分“array2DB [i,i] =”我怎么做这个。

根据回复更新循环

 private void BackGroundLoop()
    {
        for (int i = 1; i < 31; i++)
        {
            string txbName = "br" + i + "txt" + '3';

            TextBox txtBCont1 = (TextBox)this.Controls[txbName];

            string string1 = txtBCont1.Text.ToString();
            UpdateFormClass.runUserQuery(string1);

            array2DB[0, i - 1] = int.Parse(UpdateFormClass.gamleSaker.ToString());
            array2DB[1, i - 1] = int.Parse(UpdateFormClass.nyeSaker.ToString());
        }
    }

3 个答案:

答案 0 :(得分:1)

这是你能做的最多,没有遇到异常:

int[,] array2DB = new int[2, 30];
    for (int i = 0; i < 30; i++)
    {
        string txbName = "br" + i + "txt" + '3';

        TextBox txtBCont1 = (TextBox)this.Controls[txbName];

        string string1 = txtBCont1.Text.ToString();
        UpdateFormClass.runUserQuery(string1);

        array2DB[0,i] = int.Parse(UpdateFormClass.gamleSaker.ToString());
        array2DB[1,i] = int.Parse(UpdateFormClass. nyeSaker.ToString());

    }

请注意,您不能拥有array2DB[2, *]或更高版本,因为它会生成arrayoutofbound例外。

答案 1 :(得分:1)

你必须使用两个for循环。每个数组的x和y轴一个。

for (int i = 0; i < 2; i++){
    for (int j = 0; j < 30; j++)
    {
        ....
        array2DB[i,j] = int.Parse(UpdateFormClass.gamleSaker.ToString())
            , int.Parse(UpdateFormClass.nyeSaker.ToString());
    }
}

答案 2 :(得分:1)

我不是100%肯定你想做什么,但你想要的可能是这而不是你的最后一行:

array2DB[0, i - 1] = int.Parse(UpdateFormClass.gamleSaker.ToString());
array2DB[1, i - 1] = int.Parse(UpdateFormClass.nyeSaker.ToString());
索引中需要

-1,因为数组是从.NET中的0索引的。