Выражение лямбда-оператора "IN" существует? Я ищу для создания выражения Лямбда, как показано ниже IQueryable<Object> queryEntity = _db.Projects.Where(Project=>Project.Id.IN(1,2,3,4)); Я не могу найти оператора IN в выражении Lambda. У кого-нибудь есть предложения? Ответ 1 Используйте IEnumerable.Contains для этого. var idList = new[] { 1, 2, 3, 4 }; IQueryable<Object> queryEntity = _db.Projects.Where(Project => idList.Contains(Project.Id)); Конечно, вы можете построить встроенную строку idList. Ответ 2 В операторе нет оператора, но есть содержащий. Просто инвертируйте свою логику: IQueryable<Object> queryEntity = _db.Projects.Where(Project=>(new []{1,2,3,4}).Contains(Project.Id)); Ответ 3 Вы ищете IEnumerable.Contains _db.Projects.Where(Project => list.Contains(Project.Id)); Ответ 4 вы можете написать свой собственный public static bool In(this object item, IEnumerable list) { return list.Contains(item); } public static bool In(this object item, params object[] list) { return item.In(list); }
Ответ 1 Используйте IEnumerable.Contains для этого. var idList = new[] { 1, 2, 3, 4 }; IQueryable<Object> queryEntity = _db.Projects.Where(Project => idList.Contains(Project.Id)); Конечно, вы можете построить встроенную строку idList.
Ответ 2 В операторе нет оператора, но есть содержащий. Просто инвертируйте свою логику: IQueryable<Object> queryEntity = _db.Projects.Where(Project=>(new []{1,2,3,4}).Contains(Project.Id));
Ответ 4 вы можете написать свой собственный public static bool In(this object item, IEnumerable list) { return list.Contains(item); } public static bool In(this object item, params object[] list) { return item.In(list); }