public static void MergeAll(List <string> files, string output, IProgressLog log) { BOMFile result = null; foreach (string fileName in files) { BOMFile bomFile = new BOMFile(); log.AddString(String.Format("Reading {0}", fileName)); bomFile.Load(fileName); log.AddString(String.Format("Merging {0}", fileName)); if (result == null) { result = bomFile; } else { result.Merge(bomFile); } } log.AddString(String.Format("Writing {0}", output)); result.WriteCsv(output); }