【发布时间】:2016-03-04 10:07:23
【问题描述】:
我有一个 Stores 列表(ObservableCollection<Store> 类型),Store 对象有一个名为 Features 的属性(List<Feature> 类型)。并且Feature 对象有一个Name 属性(string 类型)。
回顾一下,包含功能列表的商店列表
我有第二个 DesiredFeatures 集合(List<string> 类型)。
我需要使用 LINQ 为我提供仅具有所有 DesiredFeatures 的商店的结果。到目前为止,我只能想出一个查询,它给我一个 OR 结果而不是 AND。
看起来是这样的:
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,其中每个 Store 都有所有 DesiredFeatures。
谢谢!
【问题讨论】: