请问:怎样能快速比较两个list数据
请教大家一个问题。我有两个listA,B,每个里面有100万以上的号码或者字符串,怎样能快速得到在A中但不在B中的数据?
我目前试了两种办法,但都不是很好。
第一种:
遍历A中的每个元素,如果不在B中,记录下来。大概需要10分钟时间。
第二种,把这些数据导入到ACCESS数据库中的两个表中。用sql语句查询
delete from A where num in (select num from B);
最后A中剩下的就是需要的。这个大概需要3分多。
请问有没有更快的方法?谢谢
------解决方案--------------------
Linq
var reslut = A.Except(B);
------解决方案--------------------用linq
a.Except(b),应该是最快的。
------解决方案--------------------用linq比较快,下面的方法可能更快一些。
C# code
HashSet<string> h1 = new HashSet<string>(A);
HashSet<string> h2 = new HashSet<string>(B);
List<string> list = new List<string>();
foreach (string s in h1)
if (!h2.Contains(s))
list.Add(s);