2014-12-03 33 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; 
}