【发布时间】:2011-07-11 15:50:56
【问题描述】:
我查看了许多其他类似的问题,但给出的方法对于我想要完成的任务来说似乎太慢了,或者正在测试部分匹配,我不需要并且应该更慢。
我有两个用字符串填充的大文件,我需要检查一个列表中的每个字符串,看看它是否与第二个列表中的任何字符串匹配。我不需要检查部分匹配,并且所有内容都应该正确转义。
第二个列表(要删除的字符串)包含 160,000 个字符串。我已将其加载到 List<String> 中,然后读取较大文件的每一行并使用 List<String>.Any(line.contains) 对其进行测试。
即使只有第一个列表的一小部分(40k 字符串),这也需要很长时间,在我快速开发的计算机上可能超过 20 分钟。
这是我的问题
当不需要部分匹配时,是否有更多/什么是最有效的方法来单独比较一个大字符串列表与另一个更大的字符串列表。
【问题讨论】:
-
听起来像是在做数据库的工作?
-
不,它只是一个用于清理某些 CSV 的简单应用程序。它不应该花这么长时间来制作,也不会经常使用。
标签: c# string linq performance