以下是遇到麻烦的代码信息。
<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变量到分割和比较它们的时间之间的字符串。
任何人都知道他们为什么不比较?
答案 0 :(得分:0)
我的同事指出了这个问题。在该程序的先前版本中,我们动态地更改了ADDRESS_VALUE
的值。在这个最新版本中,我们将值更改为常量整数。
它出现在这个版本中,在我们使ADDRESS_VALUE
不变之前,它仍然被分配了一个新值,因此它实际上是在比较NAME_VALUE
而不是比较ADDRESS_VALUE
事实上失败了。
谢谢大家的意见。他们真的很有帮助。