これがあなたが探しているものかどうかわかりません... C# で重複したヘッダーを取り除く 1 つの方法を次に示します。コードの主な目的は、1 つのヘッダーを保存string header
し、最初の行をスキップしてファイルを読み取ることです ( while (rdr.Peek() != -1)
)。
また、辞書を使用して各 csv ファイルの行を保存しました。これにより、異なるcsvファイルに重複する行が含まれるのを防ぎます(この機能があなたのケースで役立つかどうかはわかりません)。
Imaginefname
は、マージするファイルを含む文字列配列です。
Dictionary<string, string> dict = new Dictionary<string, string>();
string destinationFile = <write path of your destination file>;
string dir = <write path of your original directory>
string header = "";
if (dir.Length != 0)
{
foreach (string f in fnames)
{
using (StreamReader rdr = new StreamReader(dir + "\\" + f))
{
header = rdr.ReadLine();
while (rdr.Peek() != -1)
{
string ln = rdr.ReadLine();
string[] split_ln = ln.Split(',');
string value = (split_ln.Length != 2) ? string.Join(",", split_ln.Skip(1)) : split_ln[1];
dict.Add(split_ln[0], value);
}
}
}
using (StreamWriter wr = new StreamWriter(destinationFile))
{
wr.WriteLine(header);
foreach (var pair in dict)
{
wr.WriteLine("{0},{1}", Convert.ToString(pair.Key), pair.Value);
}
}
}