【问题标题】:Putting the contents of a multidimentional array into a ListView with a for loop使用 for 循环将多维数组的内容放入 ListView
【发布时间】:2014-02-07 21:18:42
【问题描述】:

我有以下变量和数组。我正在尝试将值推送到 ListView 中以显示它们。

        int oneLIAR = 0;
        int twoLIAR = 0;
        int threeLIAR = 0;
        int fourLIAR = 0;
        int fiveLIAR = 0;
        int sixLIAR = 0;
        int sevenLIAR = 0;
        int eightLIAR = 0;
        int nineLIAR = 0;
        int tenplusLIAR = 0;
        string[,] rowsViewLossCount = new string[10, 2] {
            {"1", oneLIAR.ToString("#,##0")},
            {"2", twoLIAR.ToString("#,##0")},
            {"3", threeLIAR.ToString("#,##0")},
            {"4", fourLIAR.ToString("#,##0")},
            {"5", fiveLIAR.ToString("#,##0")},
            {"6", sixLIAR.ToString("#,##0")},
            {"7", sevenLIAR.ToString("#,##0")},
            {"8", eightLIAR.ToString("#,##0")},
            {"9", nineLIAR.ToString("#,##0")},
            {"10+", tenplusLIAR.ToString("#,##0")}
        };

当我尝试以下循环时,我得到一个错误:

        for (int i = 0; i < (rowsViewLossCount.Length-1); i++)
        {
            listViewLossCount.Items.Add(rowsViewLossCount[i, 0]).SubItems.Add(rowsViewLossCount[i, 1]);
        }

我收到错误“IndexOutOfRangeException 未处理”、“索引超出数组范围”。在错误发生时,i = 10,这意味着它超出了界限,因为它应该只能达到 9。但是,我尝试在我的 for 循环中替换为“i

【问题讨论】:

  • .Length 返回数组中的元素总数(在您的情况下为 10 * 2 == 20)

标签: c# arrays winforms listview for-loop


【解决方案1】:

嗯,你知道计数,所以你为什么不这样做:

for (int i = 0; i < 10; i++)
{
    listViewLossCount.Items.Add(rowsViewLossCount[i, 0]).SubItems.Add(rowsViewLossCount[i, 1]);
}

或者:

for (int i = 0; i <= rowsViewLossCount.GetUpperBound(0); i++)
{
    listViewLossCount.Items.Add(rowsViewLossCount[i, 0]).SubItems.Add(rowsViewLossCount[i, 1]);
}

【讨论】:

    【解决方案2】:

    对于多维数组,需要分别询问每个维度的长度:

    GetLength(0) 给出第一个维度,GetLength(1) 获得第二个维度。你的循环应该是:

    for (int i = 0; i < rowsViewLossCount.GetLength(0); i++)
    {
        listViewLossCount.Items.Add(rowsViewLossCount[i, 0]).SubItems.Add(rowsViewLossCount[i, 1]);
    }
    

    【讨论】:

      猜你喜欢
      • 2015-10-24
      • 1970-01-01
      • 1970-01-01
      • 2013-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-02
      • 1970-01-01
      相关资源
      最近更新 更多