C# 无法将类型 'TCSCapstone.frmInventory' 的对象转换为类型 'System.IConvertible'
C# Unable to cast object of type 'TCSCapstone.frmInventory' to type 'System.IConvertible'
我正在尝试将 Listbox
中的所有值相加,其中 Listbox
由其他两个列表框的值相乘得到。它本质上是 Listbox
的总和。
我一直收到错误,我查了一下,其他人都有类似问题的类似问题。它与 ToInt32
或 ToString
有关,我无法修复它。每当我单击我的按钮以加载执行该循环的 Listbox
时,它都会给我错误。
请帮忙,我只剩下这些了。
int i = 0, result = 0;
while (i < lstTotalPrices.Items.Count)
{
result += Convert.ToInt32(lstTotalPrices.Items[i++]);
}
txtTotal.Text = Convert.ToString(result);
看起来 lstTotalPrices.Items[i++]
无法使用 Convert.ToInt32()
转换为整数,因此最好将它们转换为字符串,然后将这些值传递给 ToInt32()
,请尝试以下操作:
result += Convert.ToInt32(lstTotalPrices.Items[i++].ToString());
您可以使用 int.TryParse()
进行此转换,而不是 Convert.ToInt32()
根据评论和聊天,这应该有效:
int i = 0;
decimal result = 0;
while (i < lstTotalPrices.Items.Count)
{
result += ((frmInventory)lstTotalPrices.Items[i++]).TotalPrice;
}
尽管更简洁的解决方案是
int i = 0;
decimal result = 0;
foreach (var item in lstTotalPrices.Items)
{
result += item.TotalPrice;
}
我正在尝试将 Listbox
中的所有值相加,其中 Listbox
由其他两个列表框的值相乘得到。它本质上是 Listbox
的总和。
我一直收到错误,我查了一下,其他人都有类似问题的类似问题。它与 ToInt32
或 ToString
有关,我无法修复它。每当我单击我的按钮以加载执行该循环的 Listbox
时,它都会给我错误。
请帮忙,我只剩下这些了。
int i = 0, result = 0;
while (i < lstTotalPrices.Items.Count)
{
result += Convert.ToInt32(lstTotalPrices.Items[i++]);
}
txtTotal.Text = Convert.ToString(result);
看起来 lstTotalPrices.Items[i++]
无法使用 Convert.ToInt32()
转换为整数,因此最好将它们转换为字符串,然后将这些值传递给 ToInt32()
,请尝试以下操作:
result += Convert.ToInt32(lstTotalPrices.Items[i++].ToString());
您可以使用 int.TryParse()
进行此转换,而不是 Convert.ToInt32()
根据评论和聊天,这应该有效:
int i = 0;
decimal result = 0;
while (i < lstTotalPrices.Items.Count)
{
result += ((frmInventory)lstTotalPrices.Items[i++]).TotalPrice;
}
尽管更简洁的解决方案是
int i = 0;
decimal result = 0;
foreach (var item in lstTotalPrices.Items)
{
result += item.TotalPrice;
}