2016-07-25 4 views
0

Gibt es eine Möglichkeit, die Ausgabe meiner groupBy-Abfrage in ein Objekt zu lenken?Können Sie Objekte aus einer groupBy-Abfrage erstellen?

var inspectionItemsGrouped = inspectionItems.GroupBy(item => item.SubCategory).Select(g => new 
     { 
      SubCategory = g.Key, 
      Items = g.ToList(), 
      ValidCount = g.Sum(c => !c.ReadOnly && c.IsValid ? 1 : 0) 
     }).ToList(); 

kann ich

class QueryResults { 
    public string SubCategory {get;set;} 
    public List<InspectionItem> Items {get;set} 
    public int ValidCount {get;set;} 
} 

schaffen, aber ich kann nicht herausfinden, wie es zu befestigen!

Antwort

1

Sie können eine neue Instanz der QueryResults Klasse erstellen, indem Sie seinen Namen nach der new Anweisung setzen, wie folgt aus:

var inspectionItemsGrouped = inspectionItems 
    .GroupBy(item => item.SubCategory) 
    .Select(g => new QueryResults 
     { 
      SubCategory = g.Key, 
      Items = g.ToList(), 
      ValidCount = g.Sum(c => !c.ReadOnly && c.IsValid ? 1 : 0) 
     }).ToList(); 

Und als Vorschlag, Sie wahrscheinlich eine boolean auf dem ValidCount Eigenschaft nutzen könnten, statt mit einem int mit Null oder Eins.

+0

ValidCount ist eine Summe, also kann ich keinen Boolean verwenden, aber das hat perfekt funktioniert. Vielen Dank! – DeannaD

Verwandte Themen