首页 > 解决方案 > 我可以在 if 中使用变量比较运算符吗?

问题描述

有任何函数可以使用字符串示例 ">=" 到 if s1>=s2。现在我创建的函数可能有一个短代码。

 Function Compare(s1 As String, s2 As String, Op As String)
        If Op = ">=" Then
            Return s1 >= s2
        ElseIf Op = ">" Then
            Return s1 > s2
        ElseIf Op = "=" Then
            Return s1 = s2
        ElseIf Op = "<" Then
            Return s1 < s2
        ElseIf Op = "=<" Then
            Return s1 < s2
        Else
            Return False
        End If

    End Function

标签: vb.netstring-comparison

解决方案


稍微调整一下,它可能看起来像这样:

Function Compare(s1 As String, s2 As String, op As String, caseSensitive As Boolean) As Boolean
    Dim myComparer As StringComparer = If(caseSensitive, StringComparer.InvariantCulture, StringComparer.InvariantCultureIgnoreCase)
    Select Case op
        Case "=", "=="
            Return myComparer.Equals(s1, s2)
        Case "<>", "!="
            Return Not myComparer.Equals(s1, s2)
        Case "<"
            Return myComparer.Compare(s1, s2) < 0
        Case "<=", "=<", "!>"
            Return myComparer.Compare(s1, s2) <= 0
        Case ">"
            Return myComparer.Compare(s1, s2) > 0
        Case ">=", "=>", "!<"
            Return myComparer.Compare(s1, s2) >= 0
    End Select
    Return False
End Function

推荐阅读