【问题标题】:Get the unique value based on comparing two arrays根据比较两个数组获取唯一值
【发布时间】:2016-07-20 06:26:53
【问题描述】:

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

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

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

【问题讨论】:

  • 您不想显示 12 月和 2 月吗?

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


【解决方案1】:

您可以将值放入一个数组并使用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))))

【讨论】:

  • 在使用 Dim uniqueVals = array2.Except(array1).Concat(array1.Except(array2)) 时,有没有办法连接二月和十二月的值?我的意思是在一个消息框中同时显示 2 月和 12 月。
猜你喜欢
  • 2015-07-19
  • 1970-01-01
  • 2018-06-18
  • 2021-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-11
  • 2020-04-11
相关资源
最近更新 更多