【问题标题】:Comparing values in a jagged array比较锯齿数组中的值
【发布时间】:2016-07-22 04:59:09
【问题描述】:

我想要实现的是比较索引值。 arr1val1 和 arr2val1,然后是 arr1val2 和 arr2val2,然后依此类推,前提是它们具有相同数量的索引。最后一个消息框将提示是否在任何比较索引中检测到不匹配,无论有多少不匹配。到目前为止,我有这个代码。

 Dim str()() As String = _
        New String()() {New String() {"arr1val1", "arr1val2"}, New String() {"arr2val1", "arr2val2"}}

    For Each arstr As String() In str
        For Each strElement As String In arstr

        Next
    Next

【问题讨论】:

  • 那么外部数组总是包含两个内部数组还是内部数组的数量是任意的?如果它是任意的,您是说要将每个内部数组与其他数组进行比较吗?究竟是什么定义了不匹配?它只是两个内部数组中同一索引处的不同值吗?如果两个内部数组的元素数量不同,会发生什么?
  • 外部数组总是包含两个内部数组。同一索引处的两个不同值。数组元素的数量是固定的。

标签: arrays vb.net arraylist multidimensional-array


【解决方案1】:

根据您的评论:

Dim mismatchFound = False

For i = 0 To str(0).GetUpperBound(0)
    If str(0)(i) <> str(1)(i) Then
        mismatchFound = True
        Exit For
    End If
Next

简洁的方式,即使用LINQ:

Dim mismatchFound = Enumerable.Range(0, str(0).Length).
                               Any(Function(i) str(0)(i) <> str(1)(i))

【讨论】:

  • 你说外层数组总是包含两个内层数组。如果是这种情况,那么您已经可以开始了,因为我没有在任何地方硬编码内部数组中的元素数量。你现在是说事实并非如此吗?
  • 对不起,我只是把自己弄糊涂了。感谢您的解决方案!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-09
  • 2021-02-15
  • 1970-01-01
  • 2018-11-04
相关资源
最近更新 更多