我有两个字符串,需要在它们之间得到一个像这样的差异
dim st1 As String = "SELECT C1,C2,C3,C4,C5 FROM TEST"
dim st2 As String = "SELECT C1,C2,C3 FROM TEST"
我需要比较并显示“st2
没有,C4,C5
”
所以我尝试使用
Dim differenceQuery = st1.Except(st2)
lbldiff.Text = "st2 not have "
For Each name As String In differenceQuery
lbldiff.Text += name & Environment.NewLine
Next
但这仅显示4 5
答案 0 :(得分:1)
我为你写了这个,如果你需要测试和编辑它。 这是C#但您可以将其转换为vb我想(不是实现此目的的最佳方式,而不是优化)
rm -r test\ \(copy\)
你可以像这样使用它:
\
test将包含两个值,C4和C5
编辑:不要犹豫,提出意见或解释
答案 1 :(得分:0)
我找到了解决问题的解决方案
Dim diff As List(Of String)
Dim set1 As IEnumerable(Of String) = sql.ToLower.Split(","c).Distinct()
Dim set2 As IEnumerable(Of String) = answer.ToLower.Split(","c).Distinct()
If set2.Count() > set1.Count() Then
diff = set2.Except(set1).ToList()
Else
diff = set1.Except(set2).ToList()
End If
If diff IsNot Nothing AndAlso diff.Count <> 0 Then
lbldiff.Text = "you have a problem on : <br />"
For Each li As String In diff
lbldiff.Text += li & " <br /> "
Next