Estoy tratando de hacer una declaración LINQ donde la cláusula where proviene de una variable. Por ejemplo:C# Linq where cláusula como variable
string whereClause = address.zip == 23456;
var x = from something in someList where whereClause;
¿Esto es posible? Parece que no puedo hacer que funcione.
gracias,
Actualizar - mi cláusula where está predefinida y se basará en la entrada del usuario, así que no creo que esto funcionará para mí. Básicamente, whereClause no está construido en el método, es un parámetro del método que hace el LINQ. No explico tan bien aquí hay un mejor ejemplo:
public void doLnq(string whereClause)
{
var x = from something in someList where whereClause;
dowork(x);
}
Actualización - Solo para resumir algunas de las sugerencias y centralizar todo.
No puedo usar un interruptor para generar la cláusula where porque hay muchas posibilidades.
La publicación dinámica de linq que algunos de ustedes han publicado parece prometedora pero tengo problemas para relacionar el ejemplo de linq a sql con mi problema de linq to objects.
y @sLaks después de mirar a través de MSDN http://msdn.microsoft.com/en-us/library/bb353734.aspx Estoy teniendo problemas para averiguar dónde nos referimos a utilizar AsQueryable
gracias,
Er, no. La cláusula where es * * no * una cadena, es una expresión que devuelve un booleano. Excepto ... ¡mira el enlace de SLaks! – sq33G
@ sq33G la cadena en esta situación sería "address.zip == 23456" Me gustaría utilizar at como la expresión. La cadena proviene de la entrada del usuario para que puedan hacer búsquedas personalizadas. ¿Tiene sentido? – kds6253
Supongo que el usuario elige el campo (campo == valor) de un menú desplegable. Entonces, probablemente pueda usar una instrucción switch para construir un Func para enviar como un delegado Where. –
sq33G