在我的程序中,我想导入只有一对双打的csv文件。例如:使用double,double验证简单的CSV文件
2.2131321321, 32.321321321
3.31321321321, 65.65454545
4.12321351351, 16.13211212
你能帮助找出一个安全快捷的方法吗?
在我的程序中,我想导入只有一对双打的csv文件。例如:使用double,double验证简单的CSV文件
2.2131321321, 32.321321321
3.31321321321, 65.65454545
4.12321351351, 16.13211212
你能帮助找出一个安全快捷的方法吗?
最简单的方法是逐行读取文件中的行,由,
分割每行和尝试解析使用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));
}
}
}
做这件事时要小心,因为小数点将取决于文化。确保通过InvariantCulture。 – GeirGrusom
@GeirGrusom,尼斯点! –
@GeirGrusom +1我以前被文化问题困扰过。事后处理并不好玩。 – harlam357
我们不在堆栈溢出中“查找”代码。我们帮助确定您的代码问题。你的问题是什么? –
您如何通过代码告诉我们您尝试了什么?我们不会为你做你的工作,而是帮助你解决任何困难。 – Oded