Aquí está mi códigoCómo utilizar LINQ y la cláusula EN
if (catid != 0)
posts = posts.Where(x => x.catid IN '1,8,2,109,23');
El en en este código se muestra como un error de sintaxis. ¿Hay alguna manera de arreglar esto?
Aquí está mi códigoCómo utilizar LINQ y la cláusula EN
if (catid != 0)
posts = posts.Where(x => x.catid IN '1,8,2,109,23');
El en en este código se muestra como un error de sintaxis. ¿Hay alguna manera de arreglar esto?
Debe utilizar otra lista para comparar también.
List<int> cadIdFoundList = new List<int>();
cadIdFoundList.Add(1);
cadIdFoundList.Add(8);
// etc. . .
posts.Where(x => cadIdFoundList.Contains(x.catId));
int[] ids = new int[] { 1, 8, 2, 109, 23 };
var query = posts.Where(x => ids.Contains(x.catid));
Rob Connery tiene discussed este tema antes.
O aún más simple:
var query = posts.Where(x => new[] { 1, 8, 2, 109, 23 }.Contains(x.catid));
Es una pena que hayamos puesto ese nuevo [] allí. ¿No sería genial si pudiéramos hacer {1, 7, 3, 5} .Contiene en su lugar? :RE –
Tal vez algo más como:
HashSet<int> categories = new HashSet<int>() { 1, 2, 8, 23, 109};
posts = posts.Where(post => categories.Contains(post.catid));
fresca. Gracias ... Funciona – Luke101