在2列表vb.net中查找不同的项目

时间:2013-05-24 10:02:31

标签: vb.net algorithm collections

我有2个列表,集合类型由我决定,它可以是arraylist或hashtable等。两个列表都包含guid的。我需要找到List-1中不存在List-2的项目。

两个列表都可以包含 100万项。

我使用哈希表方法,但速度很慢。

有没有更好的方法来实现这一目标?

1 个答案:

答案 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