2016-11-15 55 views
0

我有以下類別:選擇和WHERE使用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的列表,其中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(); 
+0

'conversationIDResponsePlans'是什麼類型? – Gusdor

+0

@Gusdor' Plans' –

回答

2

所以有計劃有包和應該有至少一個具有Name「年度」包?您可以添加一個條件:

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

這將返回至少有一個包有名稱爲「年度」至少有一個套餐計劃。

+0

謝謝,但我很困惑,我會在哪裏放置where子句在我的查詢中? –

+1

@zariakhan在'select'之前和'join'之後 –