| 

.NET C# Java Javascript Exception

2
Bisher benutze ich LINQ eigenlich immer nur zum Filtern von Daten. Ich weiß theoretisch, dass man auch Daten kumulieren kann. Angenommen ich habe eine Liste Rechnungen mit Objekten vom Typ Rechnung, welche wiederum über die Eigenschaften Kunde und NettoBetrag verfügen. Um eine Summe der Nettobeträge von Kunde A zu erhalten würde ich bisher so abfragen (VB.NET):
erg = From r As Rechnung In Rechnungen Where r.Kunde = "A" Select r
Und anschließend per For-Each-Schleife die Beträge zusammenzählen. Wie klappt das komplett mit LINQ?
News:
13.04.2011
Sodann 21 1 2
2 Antworten
2
Ist aus dem Gedächtnis geschrieben aber so sollte es gehen:
from r in Rechnungen 
where r.Kunde = "A"
group r by r.Kunde into g
select new { NettoBetragSum = r.Sum(r => r.NettoBetrag), Kunde = g.Key};


Alterantive:
erg = from r in Rechnungen where r.Kunde = "A" select r;
sum = erg.Sum(s => s.NettoBetrag);


bzw. in VB.Net
erg = From r As Rechnung In Rechnungen Where r.Kunde = "A" Select r 
sum = erg.Sum(Sub(s) s.NettoBetrag)


101 LINQ Samples: Aggregator Operators
13.04.2011
Floyd 14,6k 3 9
Floyd 14,6k 3 9
1
Servus,
freihand würde ich behaupten das Du das mit folgender Zeile erreichen kannst (ungetestet)
Rechnungen.Where(Function(p) p.Kunde="A").Sum(sub(p) p.EinzelSumme)
13.04.2011
Thomas Sczyrba 1,4k 1 2 9

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH