Игнорировать регистр при сравнении IF

Есть ли простой способ сделать это сравнение при включенном игнорировании?

If file.Extension = ".Lnk" Then MsgBox(file.Extension)

То, что я пытаюсь сделать, это получить все ".lnk" или ".LNK" или ".lNk" или " ".Lnk"и т.д...

Я знаю, что это возможно с RegEx, но... есть простой способ для этого примера?

Спасибо за чтение

4 ответа

Решение

Преобразуйте расширение в нижний регистр, используя ToLower, а затем сравните

If file.Extension.ToLower = ".lnk" Then MsgBox(file.Extension)

И забудьте об этом Regex. Это действительно излишне и неуместно

Использование String.Equals для сравнения строк. Игнорировать регистр использования CurrentCultureIgnoreCase или же InvariantCultureIgnoreCase,

If String.Equals("AAA", "aaa", StringComparison.InvariantCultureIgnoreCase) Then

    'more code

End If

MSDN: метод String.Equals (строка)

MSDN: явное указание строковых сравнений

Используйте это для игнорирования сравнения

If String.Compare(file.Extension, ".lnk", True) = 0 Then MsgBox(file.Extension)

изменить true на false для сравнения с учетом регистра

Тест модуля

Sub Main()
    Dim userString As String = Nothing
    Dim finalString As String = "Jacob"

    Console.WriteLine("Enter username")
    userString = Console.ReadLine()

    If String.Compare(finalString, userString, True) = 0 Then
        Console.WriteLine("Access Granted")
    Else
        Console.WriteLine("Access Denied")
    End If


    Console.ReadLine()

End Sub

Конечный модуль

Другие вопросы по тегам