2014-12-03 62 views
0

我试图阻止我的进程挂在csv文件中,通常是“#N/A”,其中应该有一个double(我知道它的a字符串在读入...)在csv中检查数字字段

但是这不起作用,为什么?

String ColumnString = (values[Column]); 
String NA = "#N/A"; 
if (ColumnString==NA); 
{ 
    Console.WriteLine(values[Column]); 
    Console.WriteLine("non numeric value detected, Skipping line #{0}", LineNumber); 
    break; 
} 
+0

改变此为使用LINQ ,,, – StevieB 2014-12-03 07:42:53

+0

你如何发布对编码的改变?在评论中没有{code}选项, – StevieB 2014-12-03 07:45:29

+0

究竟是不行的? 'values'的类型是什么? – Codor 2014-12-03 07:48:10

回答

0

如果你是那种ColumnString的是字符串,你可以检查它至少有一个数字字符与LINQ查询遵循

bool hasnumeric = ColumnString.Any(t => char.IsNumber(t)); 
if(hasnumeric== true) 
{ 
//colomnString has at least one numeric character 
}else{ 
//colomnString doesn't have any numeric characters 
} 
+0

这样做与字符串工作,但我的CSV文件中有字符串。 – StevieB 2014-12-03 08:19:27

+0

yes上面的linq查询可以在任何字符串上工作 你可以从csv文件中获取整个数据到一个字符串变量,然后用这个查询来检查变量 – 2014-12-03 08:22:20

+0

你想搜索整个csv的特殊字符串值吗? 是这样的“#N/A”? – 2014-12-03 08:24:03

0
string ColumnString = (values[Column]); 
string NA = "#N/A"; 
if (string.Compare(ColumnString,NA)==0) 
{ 
Console.WriteLine(values[Column]); 
Console.WriteLine("non numeric value detected, Skipping line #{0}", LineNumber); 
break; 
}