【问题标题】:Comparing a record from csv with large list将来自 csv 的记录与大列表进行比较
【发布时间】:2013-02-19 15:16:18
【问题描述】:

在我的网站上,用户上传了一个 csv 文件。

我正在使用这个库 http://www.codeproject.com/Articles/11698/A-Portable-and-Efficient-Generic-Parser-for-Flat-F 读取一个 csv 文件 csv 文件将有大约 4000 条记录(每条记录有 5 列)。

我正在将每条记录读入一个列表并在一个大型对象列表中搜索(在开始读取 csv 文件之前,我正在从服务读取大型对象列表到缓存。)以检查此记录是否已经存在或不是。

通过这种方式,我必须进行 4000 次迭代,并且在每次迭代中,我都必须在大型对象列表中进行搜索(缓存中大约有 10 万条记录)。

这是实现的好方法吗?有什么办法可以提高速度吗?将这么大的列表存储在缓存中是个好主意吗?

我的环境是VS2010,.NET4.0,

【问题讨论】:

    标签: c# performance csv


    【解决方案1】:

    您可以通过为列表使用适当的数据结构来加快搜索速度。如果项目具有唯一/主键,您可以使用哈希图,这比为每个项目迭代整个列表更有效。这样你就可以使用 hashmap.containskey()。

    如果您运行该服务,您可以将责任推到该服务上——也许将唯一键列表推到那里进行比较。

    也许您可以发布一些代码以获得更具体的答案。

    【讨论】:

    • 服务只提供记录列表。代码在这里发布很复杂。
    猜你喜欢
    • 1970-01-01
    • 2020-06-15
    • 1970-01-01
    • 1970-01-01
    • 2015-02-28
    • 1970-01-01
    • 2012-02-24
    • 1970-01-01
    • 2021-11-11
    相关资源
    最近更新 更多