#c# #linq
#c# #linq
Вопрос:
Можно ли использовать что-то вроде .Where(u => u.License_ID == ID)
с идентификатором, являющимся массивом?
Ответ №1:
Кодекс
Where(u => IDs.Contains(u.License_ID))
может сработать, но это зависит от вашего поставщика базы данных, поддерживает ли он это. Если это не запрос к базе данных, а LINQ к объектам, это, безусловно, сработает.
Ответ №2:
Если массив содержит пользовательские объекты, вы всегда можете написать метод расширения, например
Equals(this Array[] _Array)
И определите там, каковы требования к равенству.
Тогда ваш код становится:
.Where(u => u.License_ID.Equals(ID))
И это было бы очень полезно для повторного использования =)
Комментарии:
1. Это не сработает, если это запрос, который будет переведен в SQL. И это сбивает с толку именование, что один элемент не равен всему массиву.
2. Это просто пример, чтобы он понял суть, а не производственный код!