我有一个我正在阅读的csv文件,其中包含以下字符串:ab1>aa2
,cc1>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.Parse
和TryParse
,他们都给出了同样的错误。
以前有人经历过这个吗?
可重复的例子:
要创建电子表格,只需打开excel并分别在A1和B1单元格中放入ab1>aa2
,cc1>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
答案 0 :(得分:2)
此值,ab1>aa2
和cc1>ed2
不是整数。
您可以先使用int.TryParse验证数据,如果结果为true,则tou可以实例化一个整数类型的变量。