【问题标题】:how to update in to a 2D array?如何更新到二维数组?
【发布时间】:2009-12-15 13:21:40
【问题描述】:

我正在调整这个循环以及用我的方法的输出填充数组的内容,我不确定最后一部分“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());
        }
    }

【问题讨论】:

    标签: c# multidimensional-array


    【解决方案1】:

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

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

    需要索引中的-1,因为在 .NET 中数组是从 0 开始索引的。

    【讨论】:

    • 好点,所以我发现 0-1 是位置,然后我是部门?
    • 是的,因为您将数组创建为 [2, 30]。所以 0-1 是第一个维度中的位置,而 i 是第二个维度的索引。您当然可以将数组创建为 [30, 2],然后根据您的需要相应地对其进行索引。
    【解决方案2】:

    这是你能做的最多的事情,不会遇到异常:

    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 异常。

    【讨论】:

    • 是的,我注意到并修复了越界,但是您的示例中的 0 和 1 是位置的 0 和 1?和 i 数组中的部门?
    • i 是第二维的深度(边界为 30),0 和 1 是第一维唯一可以具有的两个值,因为您这样声明它。
    【解决方案3】:

    您必须使用两个 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());
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-31
      • 2014-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多