我有2个列表,集合类型由我决定,它可以是arraylist或hashtable等。两个列表都包含guid的。我需要找到List-1中不存在List-2的项目。
两个列表都可以包含 100万项。
我使用哈希表方法,但速度很慢。
有没有更好的方法来实现这一目标?
答案 0 :(得分:1)
您可以使用Hashset(of T)并使用Except方法。这将返回hashset 1中但不在hashset 2中的所有项。
Dim numbers1() As new HashSet(of Double)({2.0, 2.1, 2.2, 2.3, 2.4, 2.5})
Dim numbers2() As new hashset(of Double)({2.2})
Dim onlyInFirstSet As IEnumerable(Of Double) = numbers1.Except(numbers2)
' This code produces the following output:
'
' 2
' 2.1
' 2.3
' 2.4
' 2.5