使用LINQ选择和WHERE

时间:2016-11-15 10:12:15

标签: c# linq

我有以下课程:

public class CatalogResponseRootObject
{
    public Plans Plans { get; set; }
}

public class Plans
{
    public List<Plan> plan { get; set; }
}

public class Plan
{
    public List<PlanPackage> Packages { get; set; }
}
public class PlanPackage
{
    public List<Package2> Package { get; set; }
}
public class Package2
{        
    public string Name { get; set; }
}

我有一个有效的查询。但是现在我正在尝试使用Where子句来获取那些cPlans WHERE Package2.Name == "Annual"的列表。是否可以使用Where子句以及如何检索此类信息?

CatalogResponseRootObject catalogResponse = response;
qualifiedPlans = (from cPlans in catalogResponse.Plans.plan
                                  join qPlans in conversationIDResponsePlans.plan on cPlans.Id equals qPlans.Id
                                  select cPlans).ToList();

1 个答案:

答案 0 :(得分:2)

所以计划包含的包装应该至少有一个包含Name&#34;年度&#34;?您可以添加条件:

where cPlans.Packages.Any(p1 => p1.Package.Any(p2 => p2.Name == "Annual"))

这将返回至少有一个包含至少一个名为&#34;年度&#34;的包的计划。