0
请帮助我用正确的谓词逻辑。遏制的谓词逻辑
我有一些产品的列表,我想在用户指定的某些区域显示。
我的产品类是下一个:
public class Product
{
public int id { get; set; }
public string name { get; set; }
public List<string> regions { get; set; }
}
我的设置类是:
public class LocalSettings
{
public List<string> Regions { get; set; }
}
因此,如果用户选择区域,例如逻辑是未来,欧洲则所有产品以“public List<string> regions
“必须选择包含欧洲。
我应该如何正确地在谓词中写这个?
这里是我的起点:
Predicate<Product> ProductFinder = (Product p) => { return DataManager.Instance.CurrentSettings.Regions.Contains(//HERE MUST BE ANY OF p.regions); };
编辑的第1题:
感谢帮助我已经写了这个:
Predicate<Salesplay> SalesPlaysFinder = (Salesplay p) => { return DataManager.Instance.CurrentSettings.Regions.Intersect(p.regions).Any(); };
但我p.regions是一个列表我需要将其转换为字符串
我可以做类似.Intersect(p.regions.ToString()吗?
您应该从lambda参数中删除类型名称。 – Magus
@Magus是的好点。这是从变量声明中推断出来的。 –
不好意思打扰了,但是我怎样才能在lambda表达式中进行转换? 查看我编辑的问题编号1 – Cheese