我有一个大的列表(~110,000个字符串),我需要将它与类似大小的列表进行比较.
列表A来自1个系统.列表B来自SQL表(我只能读,没有存储过程等)
找到列表A中哪些值不再存在于列表B中的最佳方法是什么?
100,000个字符串是否需要在数组中处理?
谢谢
jas*_*son 26
所以你有两个这样的列表:
List<string> listA;
List<string> listB;
Run Code Online (Sandbox Code Playgroud)
然后使用Enumerable.Except
:
List<string> except = listA.Except(listB).ToList();
Run Code Online (Sandbox Code Playgroud)
请注意,如果您想要忽略大小写:
List<string> except = listA.Except(listB, StringComparer.OrdinalIgnoreCase).ToList();
Run Code Online (Sandbox Code Playgroud)
您可以使用IEqualityComparer<string>
您选择的替换最后一个参数.
出于兴趣,你必须使用List<string>
?因为在.net 3.5 SP1中,您可以使用HashSet和它的ExceptWith方法.根据我的理解,HashSets专门针对两个集合之间的比较进行了优化.
归档时间: |
|
查看次数: |
15474 次 |
最近记录: |