ArrayList删除重复项(使其唯一)?

时间:2017-06-10 23:46:27

标签: arraylist vbscript duplicates unique

我试图弄清楚如何从VBScript中的ArrayList中删除重复项,但似乎没有相关信息。由于(显然)没有专门的功能,也许我可以得到一些建议,如何做到这一点?

我发现的唯一类似问题与Java有关,而不是VBScript。

2 个答案:

答案 0 :(得分:1)

我说最简单的方法是将值放入Dictionary

Set d = CreateObject("Scripting.Dictionary")

For Each e In arrayList
  d(e) = e
Next

arr = d.Items    'put unique elements back into 

如果您的数组列表包含对象,并且您不希望将对象引用作为唯一性指示符,则需要标识某种属性(或属性组合),这些属性定义对象的唯一性并将其用作在字典中键入。您还需要使用Set关键字来分配对象。

For Each e In arrayList
  Set d(e.uniqueProperty) = e
Next

如果您希望在原始变量中返回唯一列表,则需要另一个循环将元素从字典传输回数组列表:

arrayList.Clear
For Each e In d.Items
  arrayList.Add e
Next

答案 1 :(得分:0)

vba 中的 Arraylist 对象有一个 .contains 方法。所以,要获得一个没有重复的数组列表,你所要做的就是这样。

Set newArraylist = CreateObject("Scripting.Dictionary")

For Each item In originalArrayList
  if newArraylist .contains(item) = false then newArraylist .add(item)
Next