IF条件下的Lambda表达式

时间:2016-12-05 18:10:24

标签: c# linq if-statement lambda

我有以下课程:

public class GetAdditionalProductCatalogResponse
{
    public List<AdditionalProductDetail> AdditionalProductDetail { get; set; }
}

public class AdditionalProductDetail
{
    public string Type { get; set; }
    public string ServiceType { get; set; }
    public List<AdditionalProduct> AdditionalProduct { get; set; }
}

我有一个想要GetAdditionalProductCatalogResponse的对象,我想检查if条件是否存在AdditionalProductDetail ServiceType = "Phone"。有可能吗?

//if(getAdditionalProductCatalogResponse.AdditionalProductDetail.Where)

有可能吗?

1 个答案:

答案 0 :(得分:3)

Where上的IEnumerable子句返回过滤的IEnumerable,它不是布尔表达式 - 不能在if语句中使用。所以你需要做的是检查该集合中是否有any个项目 - 使用Any方法:

if (products.AdditionalProductDetail.Where(...).Any())

返回true / false。

语法较短,使用Any()重载来获取谓词并执行Where本身:

if (products.AdditionalProductDetail.Any(...))