Запрос LINQ для извлечения элементов, содержащих любое значение из списка?

#c# #entity-framework #linq

#c# #entity-framework #linq

Вопрос:

Допустим, у меня есть таблица, содержащая отчеты, и у каждого отчета есть идентификатор сотрудника для назначенного ему сотрудника.

Допустим, у меня есть список идентификаторов сотрудников, например:

 [ "1001", "1002", "1003", "1004", "1005", "1006", "1007"]
 

Какой запрос LINQ вернет все отчеты с этими идентификаторами сотрудников? Если бы это был всего лишь один критерий (например, если бы я хотел, чтобы все было старше года), я мог бы просто сделать

 query.Where(report => report.LaunchedDate < lastYear)
 

Но как мне это сделать, когда у меня много элементов? Нужно ли мне использовать цикл или есть метод LINQ для перечисления списка идентификаторов сотрудников?

Ответ №1:

Похоже, вы ищете что-то вроде:

 var employeeIds = ["1001", "1002", "1003", "1004", "1005", "1006", "1007"];

query.Where(report => employeeIds.Contains(report.EmployeeId));