Wednesday, May 23, 2012

Buscar dentro De Un string case-insensitive

Cómo comparar dos cadenas sin importar si el patrón de comparación está en mayúscula o minúscula.
String.Contains efectivamente busca pero es case-sensitive. Si intentás hacerlo con String.Contains te lanza la siguiente excepción:

"Unable to cast object of type 'System.OrdinalComparer' to type 'System.Collections.Generic.IEqualityComparer`1[System.Char]'."

Esto es porque el método String.Contains no soporta comparaciones case-insensitive .

Así que la opción para hacer la comparación case-insensitive es utilizando String.IndexOf.

Yo lo empleé de la siguiente manera:
 
For Each temp As LibreriaBrinks.eCliente.clsAgencia In todas
        If (temp.Nombre_Ref.IndexOf(txtBusquedaAgencia.Text, StringComparison.OrdinalIgnoreCase) <> -1) Then
            getItemListadoAgencias(temp)
        End If
Next

Bueno, a lo que a vos te debe importar es el If, obvia el For Each. Checka que la pregunta del if lleva "<> -1". Eso es importante. Fácil, no? A mi me funcionó. Está probado en VS2008.

HaPPy CoDiNg =)

No comments:

Post a Comment