2017-03-11 6 views
-1

Hallo Ich habe eine Liste unten, die mit Linq-Methodensyntax gruppiert und aggregiert werden muss.Gruppieren und aggregieren mit linq

| id  |Code|Descr | Number | Expiry | 
|---------|----|------|--------|-----------| 
| guidId1 | A | Desc1| Number1| 2017-03-18| 
| guidId2 | A | Desc1| Number1| 2017-03-18| 
| guidId3 | B | Desc2| Number1| 2017-03-18| 
| guidId4 | B | Desc2| Number1| 2017-03-18| 
| guidId5 | C | Desc3| Number1| 2017-03-18| 
| guidId6 | A | Desc1| Number2| 2020-05-20| 
| guidId7 | A | Desc1| Number2| 2020-05-20| 
| guidId8 | A | Desc1| Number2| 2020-05-20| 
| guidId9 | B | Desc2| Number2| 2020-05-20| 
| guidId10| C | Desc3| Number2| 2020-05-20| 
| guidId11| C | Desc3| Number2| 2020-05-20| 

Ich habe dies versucht, aber bin nicht sicher, wie die Zählung enthält:

myList.GroupBy(s => new { s.Number, s.Code, s.Expiry}); 

Der Ausgang I aus der Liste auswählen:

{Code = "A",Descr = "Desc1",Number = "Number1",Expiry = "2017-03-18", Count = 2} 
{Code = "B",Descr = "Desc2",Number = "Number1",Expiry = "2017-03-18", Count = 2} 
{Code = "C",Descr = "Desc3",Number = "Number1",Expiry = "2017-03-18", Count = 1} 
{Code = "A",Descr = "Desc1",Number = "Number2",Expiry = "2020-05-20", Count = 3} 
{Code = "B",Descr = "Desc2",Number = "Number2",Expiry = "2020-05-20", Count = 1} 
{Code = "C",Descr = "Desc3",Number = "Number2",Expiry = "2020-05-20", Count = 2} 

Vielen Dank im Voraus

+0

Können Sie ein Schnipsel Ihres Codes (A MCVE) auf [.NetFiddle] (https://dotnetfiddle.net/) teilen? – aloisdg

Antwort

1

Sie haben die Number, Code und Expiry, aber Sie gruppiert r Ergebnis benötigt auch die Descr. Sie müssen das in Ihre Gruppe aufnehmen und dann die Anzahl der Gruppen ermitteln.

var query = 
    from s in myList 
    group 1 by new { s.Code, s.Descr, s.Number, s.Expiry } into g 
    select new { g.Key.Code, g.Key.Descr, g.Key.Number, g.Key.Expiry, Count = g.Count() }; 
+0

Danke, mein Herr! Das hat wirklich geholfen. – AxV

Verwandte Themen