.NET String Comparison – How to Ignore Case with string.text.contains

.netstringvb.net

I am trying to figure out how to check if a string contains another while ignoring case using .text.contains.

As it stands right now If I do this:

 Dim myhousestring As String = "My house is cold"
    If txt.Text.Contains(myhousestring) Then
    Messagebox.Show("Found it")
    End If

It will only return a match if it is the exact same case. So if the user typed "my house is cold", it would not be a match.

How can I do this? If it is not possible I could probably just use regex instead with ignorecase. Any help would be appreciated.

Best Answer

According to Microsoft you can do case-insensitive searches in strings with IndexOf instead of Contains. So when the result of the IndexOf method returns a value greater than -1, it means the second string is a substring of the first one.

Dim myhousestring As String = "My house is cold"
If txt.Text.IndexOf(myhousestring, 0, StringComparison.CurrentCultureIgnoreCase) > -1 Then
    Messagebox.Show("Found it")
End If

You can also use other case-insensitive variants of StringComparison.

Related Question