C#数组未在列表框中清除

时间:2016-11-05 19:10:35

标签: c# arrays listbox

我是编程新手,无法按照自己的意愿清理列表框。发生的情况是用户能够输入一个值,然后将其存储到一个数组中,然后将其添加到列表框中。用户可以随时清除阵列/列表框。但输入一个值后,例如123然后显示在列表框上,然后使用清除按钮。然后再输入另一个值,例如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();

    }

3 个答案:

答案 0 :(得分:0)

您可以使用Add()方法将项​​目插入特定索引中,而不是使用Insert(Int32, Object)方法,而不是

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

最好是将列表框与新数组内容重新绑定

lstHoldValue.DataSource = numArray;

答案 1 :(得分:0)

Array.Clear方法仅将值重置为默认值(如果是整数,则为0)。

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

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

答案 2 :(得分:0)

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

我刚看到你的清算代码,这正是原因所在。将其添加到您的清晰代码中:

this.index = 0;