读书人

请教:怎样能快速比较两个list数据

发布时间: 2012-08-01 17:53:41 作者: rapoo

请问:怎样能快速比较两个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); 

读书人网 >C#

热点推荐