将“对象”类型的列表框项转换为“int”类型

时间:2013-04-29 01:56:46

标签: c# arrays types listboxitem

所以我有一个项目来建立一个具有存款功能的银行账户系统。但是我无法存入输入到文本框中的金额,因为列表框中的项目是“对象”类型。如何将列表框中项目的数据类型从“对象”更改为“双精度”。 ---------仅供参考:这是家庭作业----------

这是我声明我的数组的方式:

    double[] accountbalances = {1348.36, 4456.63,2247.50,8175.86,4721.83,7815.35,3573.02,1603.53,4732.36, 2620.32};

    string[] accountnumbers = {"991364", "103655", "830087", "963216", "216329", "546188", "969200", "211794", "992629", "451876"};

这就是我在列表框中显示数组的方式:

    foreach (double balance in accountbalances)
        {
            lstAccountBalances.Items.Add(("$") + balance);
        }
        foreach (string account in accountnumbers)
        {
            lstAccountNumbers.Items.Add(account);
        }

我正在尝试将(depositamount)添加到列表框中的选定帐户,但它会返回错误,说明转换错误,并且列表框中的项目类型为“object”而不是类型为double,因为我已定义对于阵列。

    private void button2_Click(object sender, EventArgs e)
    {
        double depositamount = double.Parse(textBox1.Text);

        if (depositamount > 0 && lstAccountNumbers.SelectedIndex != -1)
        {
            int account = lstAccountNumbers.SelectedIndex;

            double balance = (double)lstAccountBalances.Items[account];

            lstAccountNumbers.Items[account] = depositamount + balance;
        }
        else
        {
            MessageBox.Show("Enter Value Geater Than 0 and Select An Account Number ", "INVALID", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
    }

1 个答案:

答案 0 :(得分:1)

问题是你没有在列表框中添加一个double,而是添加了一个字符串,因为你在它前面添加了$字符。

设置

lstAccountBalances.FormatString = "c"; // c means currency

在开头的某个地方(例如在设计师中),然后添加没有美元符号的数字:

lstAccountBalances.Items.Add(balance);

之后,它们将保持double,您可以将其从object

转回