A continuación de una pregunta previous que pregunté, ahora estoy tratando de averiguar cómo crear expresiones dinámicas para AND Y & consultas OR.Cómo construir un árbol de expresiones dinámicas Y O linq en un bucle
Dada la siguiente matriz de cadenas:
string[] ranges = new string[]{"0-100", "100-200", "500-1000"};
me gustaría expresar dinámicamente esto en una expresión LINQ - Algo a lo largo de las líneas de:
var v = from p in products
where
(p.Amount >= 0 && p.Amount <= 100) ||
(p.Amount >= 101 && p.Amount <= 200) ||
(p.Amount >= 500 && p.Amount <= 1000)
select p;
¿Cómo puedo construir dinámicamente la expresión LINQ en este ciclo?
string[] ranges = new string[]{"0-100", "100-200", "500-1000"};
var query = products.AsQueryable();
foreach (var item in ranges)
{
int min = int.Parse(item.Split('-').First());
int max = int.Parse(item.Split('-').Last());
//Linq expression?
}
Gracias esto me llevó a la pista derecha. Terminé instalando el paquete Nuget LINQKit con el creador de predicados incluido y más. Esto es útil si estás trabajando con objetos EF. – Fixer