比较2个ArrayLists并删除重复项

时间:2016-08-24 19:11:25

标签: vb.net arraylist

我希望比较2个不同的ArrayLists的值,并从1个ArrayList中删除任何重复项。

示例:

Arr1 = {HF,HA,GM,RV}

Arr2 = {FB,HA}

由于他们有'HA'共同点,我想从Arr1中删除'HA'。任何有关正确方向的帮助或观点都将受到赞赏。

1 个答案:

答案 0 :(得分:0)

您可以使用LINQ的Except,但您必须先将数组列表转换为常规数组:

https://msdn.microsoft.com/en-us/library/bb300779(v=vs.110).aspx

    Dim list1 As New ArrayList()
    list1.Add("A")
    list1.Add("B")
    list1.Add("C")

    Dim list2 As New ArrayList()
    list2.Add("A")
    list2.Add("B")

    Dim array1 = list1.ToArray()
    Dim array2 = list2.ToArray()
    Dim except = array1.Except(array2).ToArray()

enter image description here

此外,如果您需要自定义比较,请改为使用此重载:

https://msdn.microsoft.com/en-us/library/bb336390(v=vs.110).aspx

修改

ArrayList可用的LINQ方法很少,但您可以很容易地将其转换回来:

Dim arrayList as New ArrayList(except)