Foros del Web » Programación para mayores de 30 ;) » .NET »

LINQ: Hacer Where campo in()

Estas en el tema de LINQ: Hacer Where campo in() en el foro de .NET en Foros del Web. Buenas de nuevo chicos !! Bueno... pues eso, supongamos que quiero buscar todo lo que tengan las siguientes palabras: "0001, 0002, 0003" Como puedo hacer ...
  #1 (permalink)  
Antiguo 03/06/2009, 07:24
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 10 meses
Puntos: 7
LINQ: Hacer Where campo in()

Buenas de nuevo chicos !!

Bueno... pues eso, supongamos que quiero buscar todo lo que tengan las siguientes palabras:

"0001, 0002, 0003"

Como puedo hacer el where en LinQ ??

Intenté asi:
where campo.contains("0001,0002,0003"); Pero obviamente no me funciona. Asi que si saben como puedo solucionar el problema... se lo agradecería prondunamente.

Saludos.
__________________
Charlie.
  #2 (permalink)  
Antiguo 03/06/2009, 07:54
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 7 meses
Puntos: 87
Respuesta: LINQ: Hacer Where campo in()

q onda charlie mira esto

http://blog.wekeroad.com/blog/creati...h-linq-to-sql/

pero porq no usar un or y tener

where campo.Contains("0001") || campo("0002")
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #3 (permalink)  
Antiguo 10/06/2009, 00:16
 
Fecha de Ingreso: agosto-2006
Mensajes: 4
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: LINQ: Hacer Where campo in()

Para usar la sentencia IN de SQL en Linq to SQL tienes que hacer lo siguiente:

Los valores a comparar deberán estar en un tipo que implemente IEnumerable<T>, como arrays, listas genéricas, colecciones etc.

Por ejemplo usando un array de strings:

Código csharp:
Ver original
  1. string[] valores = "0001,0002,0003".Split(',');

o utilizando una lista genérica de strings:

Código csharp:
Ver original
  1. var valores = new List<string> {"0001", "0002", "0003"};


Y para hacerlo tendrás que hacer tu where al contrario de como lo posteaste en tu pregunta:



Código csharp:
Ver original
  1. var query = from t in db.Tabla
  2.                   where valores.Contains(t.Campo)
  3.                   select t;


Básicamente en el where se comprueba, si el valor de t.Campo existe en valores (usando Contains).



Saludos,


--

CMS
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:05.