Как с помощью linq получить список элементов, список атрибутов которых соответствует другому списку?
Возьмите этот простой пример и псевдокод:
List<Genres> listofGenres = new List<Genre>() { "action", "comedy" });
var movies = _db.Movies.Where(p => p.Genres.Any() in listofGenres);
.StartWith, .EndsWith, .Contains
из здесь он работает, но то , что можно сделать , чтобы использовать запросContains
повторное использование заканчивается операцией O (x * y) во времени, но O (1) в пространстве, где x - размер первой коллекции, а y - размер второй. ИспользуетсяIntersect
O (x + y) во времени, но O (y) в пространстве - он создает хэш-набор из второй коллекции, что позволяет быстро проверять включение любого элемента из первой коллекции. См codeblog.jonskeet.uk/2010/12/30/... подробностиДля этого можно использовать
Contains
запрос:источник
Если вы используете
HashSet
вместоList
for,listofGenres
вы можете:источник
Я думаю, это тоже возможно вот так?
"TakeWhile" хуже "Where" в смысле исполнения или ясности?
источник
TakeWhile
это другая функция - она прекратит итерацию, если не найдет совпадения.Или вот так
...
источник