У меня есть список магазинов (типа ObservableCollection<Store>
) и Store
объект имеет свойство Особенности (типа List<Feature>
). и объект Feature
имеет Наименование (тип string
).LINQ Intersect на внутренней коллекции
Напомним, список магазинов, который имеет список всех функций
У меня есть вторая коллекция DesiredFeatures (типа List<string>
).
мне нужно использовать LINQ, чтобы дать мне результаты из только магазины, которые имеют все в DesiredFeatures. До сих пор я только мог придумать запрос, который дает мне ИЛИ результат вместо И.
Вот как это выглядит:
var q = Stores.Where(s=> s.Features.Any(f=> DesiredFeatures.Contains(f.name)));
Я знаю Intersect
может помочь, и вот как я использовал его:
var q = Stores.Where(s => s.Features.Intersect<Feature>(DesiredFeatures));
Это где я застрял , Intersect хочет объект Feature
, то, что мне нужно для пересечения, находится в Feature.Name.
Цель состоит в том, чтобы получить ObservableCollection, где каждый Магазин имеет все желаемые характеристики.
Спасибо!
Спасибо, Иван, GroupJoin был идеальным решением и сделал трюк. –