2011-11-04 38 views
1

在我的程序中,我想导入只有一对双打的csv文件。例如:使用double,double验证简单的CSV文件

2.2131321321, 32.321321321 
3.31321321321, 65.65454545 
4.12321351351, 16.13211212 

你能帮助找出一个安全快捷的方法吗?

+3

我们不在堆栈溢出中“查找”代码。我们帮助确定您的代码问题。你的问题是什么? –

+1

您如何通过代码告诉我们您尝试了什么?我们不会为你做你的工作,而是帮助你解决任何困难。 – Oded

回答

4

最简单的方法是逐行读取文件中的行,由,分割每行和尝试解析使用double.TryParse

简单的样品各部分,假设该文件是(不检查)有效:

public static IEnumerable<Tuple<double, double>> ReadCSV(string filePath) 
{ 
    using (var reader = new StreamReader(filePath)) 
    { 
     string line; 
     while ((line = reader.ReadLine()) != null) 
     { 
      var split = line.Split(new[] { ',' }, 
       StringSplitOptions.RemoveEmptyEntries); 

      yield return new Tuple<double, double>(
       double.Parse(split[0], CultureInfo.InvariantCulture), 
       double.Parse(split[1], CultureInfo.InvariantCulture)); 
     } 
    } 
} 
+3

做这件事时要小心,因为小数点将取决于文化。确保通过InvariantCulture。 – GeirGrusom

+0

@GeirGrusom,尼斯点! –

+0

@GeirGrusom +1我以前被文化问题困扰过。事后处理并不好玩。 – harlam357

相关问题