Codeplex 上的CommonLibrary.NET项目中也有专门的 CSV 解析支持。您可以在此处找到使用此库进行 CSV 解析的示例。
更新
下面是一些代码,可用于解析与上面类似的文本,并使用CommonLibrary.NET。注意,原文首先被截取到表头(origText.Substring(origText.IndexOf("PartStatus"))
)处,正则表达式匹配用于将一个或多个连续的空格字符替换为单个逗号(Regex.Replace(sometext, "[ ]+", ",")
):
var origText =
"Type Dummy\n" +
"Status Ready\n" +
"# Comment line\n" +
"# Another comment line\n" +
"PartStatus Result Measurement1 Measurement2\n" +
"900 OK 0 20\n" +
"600 Passed 30 400\n";
var trimmedText =
Regex.Replace(origText.Substring(origText.IndexOf("PartStatus")),
"[ ]+", ",");
var csvDoc = Csv.LoadText(trimmedText, true, false, ",");
Console.WriteLine(csvDoc.Get<int>(1, "Measurement2"));
Console.WriteLine(csvDoc.Get<string>(0, "Result"));
将产生输出:
400
OK
CommonLibrary.NET的 CSV 解析组件还提供了一种将 CSV 数据转换为ADO.NET DataTable
的简单方法:
var table = csvDoc.ToDataTable();