解析大型CSV文件并比较数据

时间:2014-10-23 20:06:19

标签: .net c#-4.0

我是否在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

2 个答案:

答案 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()
    {

    }
}