Подтвердить что ты не робот

Выражение лямбда-оператора "IN" существует?

Я ищу для создания выражения Лямбда, как показано ниже

IQueryable<Object> queryEntity = 
                _db.Projects.Where(Project=>Project.Id.IN(1,2,3,4));

Я не могу найти оператора IN в выражении Lambda.

У кого-нибудь есть предложения?

4b9b3361

Ответ 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);
}