0

現在、CSV ファイルを読み取り、その内容を返すメソッドを作成しています。

内容はヘッダー(列名)+データなので、結果を格納するためにDataTableを使おうと考えていました。
それはパフォーマンスでしょうか?私は主にコンテンツ全体を読んで別のシステムに送信することを知っています(FYI:この質問の範囲外の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 です。多くのプログラミングの質問と同様に、余分な作業を行う価値があるかどうかを判断する必要があるため、コードがよりクリーンになります。

あなたはちょうど cvs を読んで、それを別のソフトウェアに送ったと言いました。このためのクラスを作成するのはかなりやり過ぎのようです。一方、近い将来に変更や拡張が予定されている場合は、今すぐ追加の努力をする価値があるかもしれません.

要するに:

  • DataTable 構造を正しく使用していません。
  • あなたはそれを使うべきですか?プロジェクトの範囲によって異なります。
于 2013-11-12T15:29:54.673 に答える