CSV表最合适的数据结构?

Dav*_*ric 4 csv delphi

我正在寻找关于在内存中保存CSV(逗号分隔值)表的最合适的数据结构的建议.它应该涵盖两种情况:带有和没有标题的表.如果表包含标题,则所有行的所有字段都由key-> value对确定,其中key是标题中的名称,value是字段的适当内容.如果表不包含标题,则行只是字符串列表或者生成键名的key-> value对(如'COL1','COL2',...'COLn').

我正在寻找最简单(更少代码)和最通用的解决方案.

我正在考虑以下子类,但怀疑它是否是正确/有效的实现方式:

TCSV = class (TObjectList<TDictionary<string, string>>)
  ...
public
  constructor Create(fileName: string; header: Boolean; encoding: string = '';
                     delimiter: Char = ';'; quoteChar: Char = '"'); overload;
  ...
end;
Run Code Online (Sandbox Code Playgroud)

看起来我必须为每一行字段保留密钥.怎么样TDictionary<string, TStringList>?这会是一个更好的解决方案吗?

Gol*_*rol 5

TClientDataset怎么样?似乎很容易.

有关如何将TClientDataSet用作内存数据集的简单指南,请参见此处.