我有 2 个列表,集合类型取决于我,它可以是数组列表或哈希表等。两个列表都包含 guid。我需要找到 List-2 中不存在的 List-1 的项目。
两个列表都可以包含100 万个项目。
我使用哈希表方法,但速度很慢。
有没有更好的方法来实现这一目标?
我有 2 个列表,集合类型取决于我,它可以是数组列表或哈希表等。两个列表都包含 guid。我需要找到 List-2 中不存在的 List-1 的项目。
两个列表都可以包含100 万个项目。
我使用哈希表方法,但速度很慢。
有没有更好的方法来实现这一目标?
您可以使用Hashset(of T)并使用except方法。这将返回哈希集一中但不在哈希集二中的所有项目。
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