Saltar al contenido

Como en Lambda Expression y LINQ

No olvides que en la informática un problema casi siempere suele tener más de una resoluciones, de igual modo nosotros aquí te enseñaremos lo más óptimo y mejor.

Solución:

customers.Where(c => c.Name.Contains("john"));

Si tiene como objetivo LINQ to SQL, use SqlMethods.Like:

customers.Where(c => SqlMethods.Like(c.Name, "%john%")); 

Explicación:

El compilador generará un árbol de expresión a partir de la declaración anterior. Ya que LIKE es una construcción específica de SQL y no común a todos los proveedores de consultas LINQ, el SqlMethods La clase y sus miembros se utilizan como “sugerencia” para que el compilador de expresiones (compila árboles de expresión en SQL) emita un LIKE declaración.

El primer pensamiento que viene a la mente es Regex.IsMatch.

Esto se acercaría más a proporcionar el tipo de funcionalidad que obtiene de LIKE; por ejemplo, con él podrías hacer esto:

var matches = people.Where(p => Regex.IsMatch(p.Name, "A.*[mn]"));

foreach (Person match in matches)

    Console.WriteLine(match.Name);

Y obtener una salida como esta:

Adam
Aaron
Aidan

Yendo con string.Contains como han sugerido otros, es casi seguro que es preferible si su intención es simplemente buscar una subcadena específica dentro de Name.

Puntuaciones y comentarios

Agradecemos que desees añadir valor a nuestra información dando tu veteranía en las observaciones.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *