在计算列表框中的元素时出现无效的转换错误

Invalid cast error occurs in calculating elements in the listbox

我正在尝试从 C# 中的列表框数据计算中值。 但是,在 foreach 语句中发生无效转换异常,如下所示(粗体):

foreach (字符串项 in ListBox1.Items)

谁能帮我解决这个错误?将不胜感激。

谢谢。

System.InvalidCastException: Unable to cast object of type 'System.Int32' to type 'System.String'

private void calcButton_Click(object sender, EventArgs e)
{
    medianList.Clear();
    ListBox2.Items.Clear();

    if (sourceList.Count == 0)
    {
        double tInt;
        foreach (string item in ListBox1.Items)
        {
            if (double.TryParse(item, out tInt) == true)
                sourceList.Add(tInt);
        }
    }

    if (ListBox1.Items.Count > 0)
    {
        if (RadioButton1.Checked)
            MiddleMedian();
        else
            AllMedian();
    }
    else
        return;

    DisplayResults();
    sourceList.Clear();
}

嗯,错误信息是不是很有意义?

Unable to cast object of type 'System.Int32' to type 'System.String'

foreach (string item in ListBox1.Items)

因此您已将整数添加到 ListBox1。然后修复它:

foreach (int tInt in ListBox1.Items)
    sourceList.Add(tInt);