shapovalov_org
@shapovalov_org
Инженер-программист

Как найти записи соответствующие элементам массива не прибегая к циклу, и используя лямбда выражение?

Здравствуйте, вопрос такой, как не используя цикл найти все элементы базы данных соответствующие значениям из массива.
Вот например массив, нужно найти в все записи соответствующие элементам этого массива из таблицы с книгами.
int[] bookTypes = {1, 2, 6, 8};

Можно конечно использовать список, добавляя в него элементы по мере обнаружения, просто используя цикл который пробегает по элементам массива и выводит его значения. Но меня интересует можно ли одним запросом сделать выборку написав лямбда выражение. Заранее благодарен за ответы

Получилось запросом такого вида:
var books = db.Books.Where(a=> bookTypes.Contains(a.TypeId));
  • Вопрос задан
  • 2714 просмотров
Решения вопроса 1
@mayorovp
Используйте методы расширения Linq Where и Contains. Также для поиска элемента в массиве можно использовать метод IndexOf.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@asdz
Можно, выражение запроса зависит от того что будете искать, где, и какие условия поиска.
Ответ написан
Комментировать
shapovalov_org
@shapovalov_org Автор вопроса
Инженер-программист
Вот например, найти все книги тип которых соответствует значениям из массивов. В интернете не нашел примеров на подобный случай, выбрать по одному элементу просто
var books = dc.Books.Where(a => a.Status == true && a.TypeId==bookTypes[i]);

А как написать лямбда-выражение для поиска не по одному элементу а сразу по всем?
Поможет ли это:
var books = dc.Books.Where(a => a.Status == true && bookTypes.Equals(a.TypeId));
???
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы