C# 输入字符串的格式不正确
为什么我得到的错误是输入字符串的格式不正确。在这行代码中? 下面是我正在使用的完整代码:C# 输入字符串的格式不正确,c#,listview,C#,Listview,为什么我得到的错误是输入字符串的格式不正确。在这行代码中? 下面是我正在使用的完整代码: foreach(listView1.Items中的ListViewItem iiii) { 如果(Convert.ToInt32(listView1.Items[4].SubItems[4].ToString())向该方法传递一个不是数字的sting时,该方法将引发此异常 如果该值不包含后跟数字序列(0到9)的可选符号,则将引发此异常。因此,请确保字符串值listView1.Items[4]。子项[4]
foreach(listView1.Items中的ListViewItem iiii)
{
如果(Convert.ToInt32(listView1.Items[4].SubItems[4].ToString())向该方法传递一个不是数字的sting时,该方法将引发此异常
如果该值不包含后跟数字序列(0到9)的可选符号,则将引发此异常。因此,请确保字符串值listView1.Items[4]。子项[4]。ToString()
是有效数字,并且仅包含0-9之间的数字和开头的可选符号
或者,您可以使用不会引发异常的方法:
int result;
if (int.tryParse(listView1.Items[4].SubItems[4].ToString(), out result))
{
// the value was successfully parsed to an integer => use the result variable here
}
else
{
// the supplied value was not a valid number
}
您的字符串很可能包含除int
以外的字符,如字母甚至点
在执行转换之前,请调试您的应用程序,并确保这实际上是唯一的数字
listView1.Items[4].SubItems[4].ToString()
我认为您不需要将整数转换为字符串并重新解析:
Convert.ToInt32(tenthousand.ToString())
此外,您正在枚举所有项,但仅使用forth一个listView1.items[4]
。我认为这是错误的。请使用Int32.TryParse
避免分析异常:
foreach (ListViewItem iiii in listView1.Items)
{
int value;
string text = iiii.SubItems[4].ToString();
if (!Int32.TryParse(text, out value))
{
MessageBox.Show(String.Format("Cannot parse text '{0}'", text));
continue; // not number was in listview, continue or break
}
if (value <= tenthousand)
{
labelVideoViews2.Text = "GREAT";
labelVideoViews2.ForeColor = Color.Green;
break;
}
}
foreach(listView1.Items中的ListViewItem iiii)
{
int值;
string text=iiii.SubItems[4].ToString();
如果(!Int32.TryParse(文本,输出值))
{
Show(String.Format(“无法解析文本”{0}',text));
continue;//列表视图中没有数字,继续或中断
}
如果(值)
Convert.ToInt32(tenthousand.ToString())
foreach (ListViewItem iiii in listView1.Items)
{
int value;
string text = iiii.SubItems[4].ToString();
if (!Int32.TryParse(text, out value))
{
MessageBox.Show(String.Format("Cannot parse text '{0}'", text));
continue; // not number was in listview, continue or break
}
if (value <= tenthousand)
{
labelVideoViews2.Text = "GREAT";
labelVideoViews2.ForeColor = Color.Green;
break;
}
}