从两个字符串之间获取差异

时间:2016-06-24 07:43:08

标签: asp.net vb.net

我有两个字符串,需要在它们之间得到一个像这样的差异

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

2 个答案:

答案 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