整数转换不一致

时间:2015-01-30 22:45:54

标签: c#

我有一个我正在阅读的csv文件,其中包含以下字符串:ab1>aa2cc1>ed2

我使用以下代码在...中阅读

var reader = new StreamReader(File.OpenRead(file));
var line = reader.ReadLine(); // first line parameter
var values = line.Split(',');

假设values[0] = "ab1>aa2"values[1] = "cc1>ed2"读取第一行。

现在我发现如果我尝试做

int num = Convert.ToInt32(values[1]);

我得到了典型的错误:

  

mscorlib.dll中发生未处理的“System.FormatException”类型异常

     

其他信息:输入字符串的格式不正确。

现在另一方面,如果我只是为一个随机变量分配一个字符串string str = "ab1>aa2"并以相同的方式转换它的工作正常。

我确认value[0]System.String。我尝试了int.ParseTryParse,他们都给出了同样的错误。

以前有人经历过这个吗?


可重复的例子:

要创建电子表格,只需打开excel并分别在A1和B1单元格中放入ab1>aa2cc1>ed2。将其另存为Book1.csv

var reader = new  StreamReader(File.OpenRead(@"C:\Users\abc\Desktop\Book1.csv"));
var line = reader.ReadLine(); // first line parameter
var values = line.Split(',');
Console.WriteLine(values[0]);

Int32 num = Convert.ToInt32(values[0]); //problem

1 个答案:

答案 0 :(得分:2)

此值,ab1>aa2cc1>ed2不是整数。

您可以先使用int.TryParse验证数据,如果结果为true,则tou可以实例化一个整数类型的变量。