对于简单的任务,使用C#DataTable是否过度杀伤?

时间:2013-11-12 10:52:42

标签: c# performance

我目前正在编写一种方法来读取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;

1 个答案:

答案 0 :(得分:2)

您的内容是标题和行。或简称为DataTable。像许多编程问题一样,你必须决定是否值得额外的工作有更清晰的代码。

你提到你只是读了一个简历并将它发送到另一个软件。为此创建类似乎相当大。另一方面,如果您希望在不久的将来进行更改或扩展,那么现在可能还需要额外的努力。

简而言之:

  • 使用DataTable结构
  • 你应该用吗?取决于项目的范围。