2012-05-17 176 views
0
int i = 0; 
int x = 10; 
List<int> group = new List<int>(); 

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

为什么这不起作用?我想显示名为“组”的前10个号码。为什么这个简单的代码不起作用(ArgumentOutOfRangeException)

编辑: 其实我是想创建变量和连续打印...

+7

以及..组是空的... –

+0

究竟什么你_expect_这段代码呢? – David

+0

我想创建变量并连续打印它... – user1171498

回答

8

你从来没有把任何东西在组变量。您只实例化了一个空列表。

而且你会更好,这样做:

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

因为组是空的?由于它没有元素,因此您无法访问组[0],这是您在第一次迭代中所做的操作

1

这是因为group为空!

当你的循环首先执行,然后i = 0然后尝试Convert.ToString(groups[i])这总是会失败,因为在group

1

没有0索引你试图让他们之前,您应该添加元素在列表中。这就是你得到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++; 
    } 
+0

谢谢这也是我需要的! – user1171498

+0

不客气 – Adil

0

如果你期待group用数字来填充,你必须自己做。声明并初始化它List<int> group = new List<int>();只会创建它。里面什么都没有。如果你想尝试把变量,你可以做这样的事情:

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

这是我所需要的更多!谢谢! – user1171498

+0

不客气!请upvote帮助:) –

+0

另一种方法是做'var group = Enumerable.Range(0,10).ToList()'。也许你甚至可以省略'.ToList()'部分,如果它不是必需的,那么这个组是'List <>'。在'group'上使用'foreach'。 –

相关问题