将csv中的记录与大型列表进行比较

时间:2013-02-19 07:06:39

标签: c# performance csv

在我的网站中,用户上传了一个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,

1 个答案:

答案 0 :(得分:0)

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

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

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