为什么这个简单的代码不起作用(ArgumentOutOfRangeException)

时间:2012-05-17 16:46:18

标签: c# list while-loop

int i = 0;
int x = 10;
List<int> group = new List<int>();

while (i < x)
{
    RichTextBoxShowTafel.AppendText(Convert.ToString(group[i]));
    i++;
}

为什么这不起作用?我想显示List的前10个数字:“group”。

编辑: 我实际上想要创建变量并连续打印......

5 个答案:

答案 0 :(得分:8)

你永远不会在组变量中添加任何内容。您只实例化了一个空列表。

你最好这样做:

foreach (int item in group)
{
  RichTextBoxShowTafel.AppendText(item.ToString());
}

答案 1 :(得分:2)

因为组是空的?因为它没有元素,所以你不能访问group [0],这是你在第一次迭代中所做的事情

答案 2 :(得分:1)

这是因为group是空的!

当您的循环首次执行时i = 0然后您尝试Convert.ToString(groups[i]),因为0

中没有group的索引,所以{{1}}将始终失败

答案 3 :(得分:1)

在尝试获取元素之前,您应该在列表中添加元素。这就是你得到ArgumentOutOfRangeException的原因。您可以先通过添加元素来避免异常。

    int i = 0;
    int x = 10;
    List<int> group = new List<int>();

    while (i < x)
    {
        group.Add(i);
        RichTextBoxShowTafel.AppendText(Convert.ToString(group[i]));
        i++;
    }

答案 4 :(得分:0)

如果您希望group填充数字,则必须自己执行此操作。声明并初始化它List<int> group = new List<int>();只会创建它。里面什么都没有。如果您想尝试将变量放入其中,可以执行以下操作:

for(int j = 0; j < 10; j++)
{
   group.Add(j);
}