【发布时间】:2013-05-10 17:22:32
【问题描述】:
我有一个文本框,它接受来自用户的 int 输入,然后我使用循环将每个数字添加到我的列表 integerList。但是当我在列表框中显示列表时,它只显示第一个 int。例如,如果用户输入 12345,它应该在列表框中显示为列表:
Listbox output should look like this:
1
2
3
4
5
这是代码:
List<int> integerList = new List<int>();
for (int a = 0; a < textBox1.Text.Length; a++)
{
integerList.Add(int.Parse(textBox1.Text[a].ToString()));
listBox1.DataSource = integerList;
}
【问题讨论】:
-
我不明白为什么您的代码不起作用。也许尝试将
listBox1.DataSource = integerList;移动到 for 循环之后。 -
是的,我不明白为什么它也不起作用。但是,如上所述,表达式绝对应该在 for 循环之外,无论它是否解决了问题。
-
我认为如果您在循环内进行分配,它不起作用的原因是 a) 列表框不跟踪数据源的更改;它假定它是静态的,并且 b) 它检查新源是否与旧源的引用相同,如果是这样,则放弃。所以第一次,它将源设置为单元素列表。由于 a) 点,没有注意到额外的元素添加,并且由于 b),再次设置源是无操作的。