c#列表框中数组不清除

本文关键字:清除 数组 列表 | 更新日期: 2023-09-27 18:16:42

我是编程新手,在清理列表框时遇到了麻烦。所发生的是,用户能够输入一个值,这个值将被存储到一个数组中,然后该数组将被添加到一个列表框中。用户可以随时清除数组/列表框。但是,在输入值(例如123)并显示在列表框上之后,然后使用clear按钮。然后再次输入另一个值,例如555,而不是555是lisbox中的第一个数字,它是:0,155。如果我再次清除,然后添加另一个数字,例如1123,输出是:0,0,1123。等。我似乎只清除了以前的元素,只是把数字放到下一个索引。我如何清空数组/列表框,以便我只添加数字到第一个索引,而不是得到0000…N显示在我的列表框中。

按钮清除:

    private void btnClear_Click(object sender, EventArgs e)
    {
        Array.Clear(numArray, 0, numArray.Length);
        lstHoldValue.Items.Clear();
    }

c#列表框中数组不清除

问题可能是单击clear时没有将索引值重置为0。我认为在清除numArray的代码中,你将值设置为0或者你正在创建另一个数组,但记住index仍然是清除之前的值。如果没有,请将您的清算代码,我可以帮助。

我刚刚看到了你的清算代码,这就是原因。将此添加到您的清晰代码中:

this.index = 0;

代替使用Add()方法,您可以使用Insert(Int32, Object)方法将项目插入到特定索引中,如

lstHoldValue.Items.Insert(0, numArray[i]);

最好是用新的数组内容重新绑定列表框

lstHoldValue.DataSource = numArray;

Array.Clear方法只将值重置为默认值(整数为0)。

清除数组的快速方法是重新初始化它,即numArray = new int[10]

来源:https://msdn.microsoft.com/en-us/library/system.array.clear (v = vs.110) . aspx