VB.net问题与字符串比较失败

时间:2016-03-18 17:14:25

标签: vb.net string visual-studio string-comparison

以下是遇到麻烦的代码信息。

<type fullname="System.Net.Configuration.SmtpSpecifiedPickupDirectoryElement" preserve="all"/>

问题是,当我进行地址值比较时,它总是失败。我的观察窗口处于活动状态且值相同,但它们没有比较。您可以在下面看到我的Watch窗口输出。

Private Const DOB_VALUE As Integer = 0
Private Const ADDRESS_VALUE As Integer = 1
Private Const NAME_VALUE As Integer = 2

For Each oRecord As KeyValuePair(Of Integer, String) In OriginalFileInfo
        For Each nRecord As KeyValuePair(Of Integer, String) In WorkingFileInfo
            Dim OriginalComparisonStringSubstrings As String() = oRecord.Value.ToString.ToLower.Split(":")
            Dim WorkingComparisonStringSubstrings As String() = nRecord.Value.ToString.ToLower.Split(":")

            ' Are dates of birth the same?
            If OriginalComparisonStringSubstrings(DOB_VALUE) Like WorkingComparisonStringSubstrings(DOB_VALUE) Then
                ' Are the address the same?
                If OriginalComparisonStringSubstrings(ADDRESS_VALUE) Like WorkingComparisonStringSubstrings(ADDRESS_VALUE) Then
                    ' Dob and address are the same, means we have a valid match. Lets check if the names match
                    If OriginalComparisonStringSubstrings(NAME_VALUE) Like WorkingComparisonStringSubstrings(NAME_VALUE) Then
                        ' dob, address and name matches
                    Else
                        ' Dob and address matches, name does not
                    End If
                End If
            End If
        Next
    Next

两个地址的比较(即“123某处车道”,如“123某处车道”)应为真,但返回false。我的问题是,当这些价值显然相等时,为什么这些价值观失败?在我的代码中,我使用“Like”比较,但我也尝试过String.Compare,StrComp,.Equals,=,以及其他所有比较变体。此外,这些值始终是从插入FileInfo变量到分割和比较它们的时间之间的字符串。

任何人都知道他们为什么不比较?

1 个答案:

答案 0 :(得分:0)

我的同事指出了这个问题。在该程序的先前版本中,我们动态地更改了ADDRESS_VALUE的值。在这个最新版本中,我们将值更改为常量整数。

它出现在这个版本中,在我们使ADDRESS_VALUE不变之前,它仍然被分配了一个新值,因此它实际上是在比较NAME_VALUE而不是比较ADDRESS_VALUE事实上失败了。

谢谢大家的意见。他们真的很有帮助。