我是否在C#中使用任何CSV解析器并比较CSV文件?
情形: 我有多个CSV文件,每个CSV文件有几百万行。我应该加载CSV并尽快完成比较。 :)
CSV文件1:
Account Amount
1234 1
9999 66
CSV文件2:
Account Amount
1234 2
9999 66
CSV文件3:
Account Amount
1234 1
9999 66
CSV文件4:
Account Amount
1234 10
9999 66
比较输出后看起来像
Account File1Amt File2Amt File3Amt File4Amt Match?
1234 1 2 1 10 No
9999 66 66 66 66 Yes
答案 0 :(得分:1)
一个想法可能是,将数据加载到数据库中并在SQL中完成工作。使用Load-Table功能,您可以在很短的时间内加载大量数据。
答案 1 :(得分:1)
如果您无法使用数据库,或者您没有足够的计算机资源,则可以使用字典对象创建报告,类似于以下内容:
public void CreateAccountReport()
{
Dictionary<int, AccountReport> accountReportCollection = new Dictionary<int, AccountReport>();
//read in file 1 and add records to dictionary...
//read in files 2,3,4 and update dictionary (when reading in file 4 set bool match)
}
public class AccountReport
{
public int AccountNumber { get; set; }
public int File1Amt { get; set; }
public int File2Amt { get; set; }
public int File3Amt { get; set; }
public int File4Amt { get; set; }
public bool Match { get; set; }
public AccountReport()
{
}
}