2016-04-04 6 views
0

Ich habe eine Liste mit einer Klasse Typ TaxDetailsGet A Dictionary of Sums in einer Liste Gruppe von ID

public class TaxDetails 
{ 
    public string ID {get; set;} 
    public string ItemID {get; set;} 
    public string TaxID {get; set;} 
    public string TaxCode {get; set;} 
    public decimal TaxAmount {get; set;} 
} 

es viele Anzahl der Elemente mit dem gleichen Steuernummer sein kann, aber die ID nicht wiederholt. Ich muss ein Wörterbuch zurückgeben, das Steueridentifikation und seine Summe enthält. Was bedeutet, wenn Summe bekommt es Gruppe

Dictionary<string,decimal> taxSums 

dieser Wörterbuch enthält nur die Steuer-ID und den Gesamtsteuerbetrag für diese bestimmte Taxid in der Liste durch die Steuer-ID sein sollte.

Antwort

2

Dies sollte funktionieren:

var result = 
    list 
    .GroupBy(x => x.TaxID) //Group by TaxID 
    //Convert to dictionary. The key is the TaxID 
    //and the value is the sum of tax amount values in the individual group 
    .ToDictionary(g => g.Key, g => g.Sum(x => x.TaxAmount)); 
+0

Sie danken es funktioniert – Sameera

+0

Was durch die TaxID darüber Gruppen, wie Sie den Steuercode als Schlüssel des Wörterbuchs anstelle des TaxID – Sameera

+0

gezeigt haben, und fügen Sie Bitte. Was ist die Steuernummer? –

1

Gruppe dann summieren sie. Dann werfen Sie die Ergebnisse in ein Wörterbuch.

var taxSums = context.TaxDetails.GroupBy(d => d.TaxID, d => d.TaxAmount) 
    .ToDictionary(g => g.Key, g => g.Sum());