C# 在不崩溃的情况下删除数组值

C# 在不崩溃的情况下删除数组值,c#,C#,我正在做一个订购界面,我被困在删除点 e、 g: 开始时,我将单击“添加到订单”按钮,该按钮将食品价格和数量相乘,然后存储到一个数组中 private int c = 0; private decimal[] ordersarray = new decimal[10]; List<decimal> items = new List<decimal>(); private void fconfirmbutton_Click(object sender, EventArgs

我正在做一个订购界面,我被困在删除点

e、 g:

开始时,我将单击“添加到订单”按钮,该按钮将食品价格和数量相乘,然后存储到一个数组中

private int c = 0;
private decimal[] ordersarray = new decimal[10];
List<decimal> items = new List<decimal>();

private void fconfirmbutton_Click(object sender, EventArgs e)
    {
        int fquantity;
        if (int.TryParse(fquantitytextbox.Text, out fquantity))
        {
            fquantity = int.Parse(fquantitytextbox.Text);
            if (fquantity.ToString() != "" + 0)
            {
                decimal mulxprice, quan, total;
                mulxprice = decimal.Parse(fpricetextbox.Text);
                quan = int.Parse(fquantitytextbox.Text);
                total = mulxprice * quan;
                cartlistbox.Items.Add(foodnametextbox.Text + "  x" + quan.ToString() + " ($" + total.ToString() + ") ");
                subtotalbox.Text = total.ToString();
                decimal b;
                try
                {
                    if (decimal.TryParse(subtotalbox.Text, out b))
                    {
                        ordersarray[c] = b;
                        c++;
                        subtotalbox.Text = "";
                    }
                }
                catch
                {
                    MessageBox.Show("Sorry, the order system can only takes up to 10 orders at a time only.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                fquantitytextbox.Clear();
                fquantitytextbox.Focus();
            }
例如,我可能会订购2件物品,例如:

因此,我试图通过从列表框中选择项“b”并单击“删除”按钮来删除项“b”,但它总是以“索引超出数组边界”结束。 所以我知道这是在完全删除数组值后数组崩溃的一种情况,但我不知道如何

很抱歉,这可能会让人困惑,但我希望你理解我可能需要什么

尝试更改此选项:

cartlistbox.Items.Remove(cartlistbox.SelectedItem);
为此:

cartlistbox.Items.Remove(cartlistbox.SelectedIndex);

您想知道它抛出错误的原因还是阻止错误的解决方案?为什么将所选项目设置为0
cartlistbox.SelectedItem=0对象
作为参数。不是索引取索引
cartlistbox.Items.Remove(cartlistbox.SelectedIndex);