2016-11-15 3 views
0

Ich habe folgende Klassen:auswählen und WHERE LINQ mit

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; } 
} 

Ich habe eine Arbeits Abfrage. Aber jetzt versuche ich, Where-Klausel zu verwenden, um eine Liste dieser cPlans WHERE Package2.Name == "Annual" zu erhalten. Ist es möglich, solche Informationen unter Verwendung der Where Klausel und wie?

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

Welcher Typ ist 'conversationIDResponsePlans'? – Gusdor

+0

@Gusdor 'Pläne' –

Antwort

2

So haben Pläne Pakete, die Pakete und es sollte mindestens eine sein, die die Name „Annual“ hat? Sie können eine Bedingung hinzu:

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

Dadurch werden die Pläne zurück, die mindestens ein Paket mit mindestens einem Paket, das den Namen „Annual“ hat.

+0

Danke, aber ich bin verwirrt, wo würde ich die WHERE-Klausel in meiner Abfrage platzieren? –

+1

@zariakhan Vor 'select' und nach' join' –