【问题标题】:int parse not adding to list properlyint parse 未正确添加到列表中
【发布时间】: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),再次设置源是无操作的。

标签: c# list int


【解决方案1】:

如果你走线会发生什么

listBox1.DataSource = integerList;

退出循环?

    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;

【讨论】:

    【解决方案2】:

    尝试使用下一个代码来实现你想要的

    listBox1.DataSource = textBox1.Text.ToCharArray();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-16
      • 2014-06-10
      • 1970-01-01
      • 1970-01-01
      • 2023-03-07
      • 2023-01-31
      • 2018-12-26
      相关资源
      最近更新 更多