根据比较两个数组获取唯一值

时间:2016-07-20 06:26:54

标签: .net arrays vb.net arraylist multidimensional-array

我有两个看起来像这样的数组字符串

array1 = "January","February","September"
array2 = "January","December","September"

为了进行比较,两个数组都具有相同数量的索引。我想要实现的是显示字符串“December”,因为两个数组索引的值彼此不匹配。

1 个答案:

答案 0 :(得分:0)

您可以将值放入数组中,然后使用Except查找不匹配的值。

根据您的说明,我不确定您是否想要与其他或所有不匹配项目匹配的内容,因此我在此处提供了所有选项:

    Dim array1 = {"January", "February", "September"}
    Dim array2 = {"January", "December", "September"}

    'Pick one of the following three options
    Dim inFirstButNotSecond = array1.Except(array2) 'Gives February
    Dim inSecondButNotFirst = array2.Except(array1) 'Gives December
    Dim uniqueVals = inFirstButNotSecond.Concat(inSecondButNotFirst) 'Gives February, December

这样做的好处在于每个数组中有多少元素

并不重要

编辑:

根据要求,要在消息框中将非匹配项显示为单个字符串,您可以在结果数组上使用String.Join,如下所示:

MessageBox.Show(String.Join(", ", array1.Except(array2).Concat(array2.Except(array1))))