2016-07-22 64 views
-1

我想实现的是比较索引值。 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 
+0

所以会外阵列始终包含两个内部阵列或者是内部数组数武断?如果它是任意的,你是说你想比较每个内部数组与其他每一个?什么确切地定义了一个不匹配?它是两个内部数组中相同索引的不同值吗?如果两个内部数组的元素数不相同,会发生什么? – jmcilhinney

+0

外部数组总是包含两个内部数组。两个不同的值在同一个索引处。数组元素的数量是固定的。 –

回答

0

基于您的评论:

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)) 
+0

你说外层数组总是包含两个内层数组。如果是这样的话,那么你已经很好走了,因为我没有硬编码内部数组中的元素数目。你现在在说,情况并非如此? – jmcilhinney

+0

对不起,我只是困惑自己。感谢您的解决方案! –