0

我目前正在编写一种读取 CSV 文件并返回其内容的方法。

内容是标题(列名)+数据,我正在考虑使用 DataTable 来存储结果。
它会表现出色吗?知道我将主要只是阅读整个内容以将其发送到另一个系统(仅供参考:FoxPro 系统,这超出了这个问题的范围)。

我还能用什么?(我的目标是有一些维护/可读性友好的代码)。

暂时我只使用一个字符串列表。

var returnValue = new List<List<string>>();

var csv = CSV;

var regexp = new Regex("(?:;|^)\"((?:[^\"]|(?:\"\"))*)\"", RegexOptions.Singleline | RegexOptions.Compiled);

var lines = csv.Split('\n');
foreach (var line in lines)
{
    var matches = regexp.Matches(line);
    returnValue.Add(matches.Cast<Match>()
                           .Select(m => m.Groups[1].Value.Replace("\"\"", "\""))
                           .ToList());
}

return returnValue;
4

1 回答 1

2

您的内容是标题和行。或者简而言之,一个数据表。像许多编程问题一样,您必须决定是否值得额外的工作来编写更简洁的代码。

您提到您刚刚阅读了一份简历并将其发送到另一个软件。为此创建类似乎有点过头了。另一方面,如果您期望在不久的将来进行更改或扩展,那么现在可能仍然值得付出额外的努力。

简而言之:

  • 没有使用不正确的 DataTable 结构。
  • 你应该使用它吗?取决于项目的范围。
于 2013-11-12T15:29:54.673 回答