2016-11-04 3 views
3

A haben eine Sammelliste, die September enthält, Oktober, November jedoch bekam ich speziell jeden MonatWie bekomme ich die Summe jedes Monats?

Start Time     EndTime 
September 11,2016 5:00PM September 11,2016 8:00PM 
September 12,2016 10:00AM September 12,2016 8:00PM 
October 1,2016 5:00PM  September 11,2016 8:00PM 
October 2,2016 10:00AM  September 12,2016 8:00PM 
November 1,2016 5:00PM  November 11,2016 8:00PM 
November 2,2016 10:00AM November 12,2016 8:00PM 

Mein Code

List<MonthHours> oList=new List<MonthHours>(); 
Int total=0; 
TimeSpan span=new TimeSpan(); 
foreach(var data in oList) 
{ 
Span=data.EndTime-data.StartTime; 
Total+=span.hours; 
} 

hinzufügen möchte ich alle Summen von September bis November, Was ich eigentlich will man das sumbt bekommen Nach Monat Beispiel Im September habe ich 3 Stunden, im Oktober 5 Stunden, im November 5 Stunden.

Leider Neuling TIA

+0

, dass in einer Tabelle anordnen ist? –

+0

können Sie Linq verwenden, um nach data.starttime.month zu gruppieren und dann die Zeitspannen zusammenzufassen – Nkosi

+0

Es ist eine Property-Auflistung. Bitte helfen Sie mir mit dieser –

Antwort

2
var result = oList 
    .GroupBy(data => data.StartTime.ToString("MMMM")) 
    .Select(g => new MonthHours { 
     Month = g.Key, 
     Total_Hours = g.Sum(d => (d.EndTime - d.StartTime).TotalHours) 
    }); 

foreach (var month in result) { 
    var str = string.Format("Month : {0}, Total Hours : {1}", month.Month, month.Total_Hours); 
} 
+0

Können Sie erklären, was ist G.KEY, was es tut? damit ich den Code verstehen kann. –

+0

Überprüfen Sie diese https://msdn.microsoft.com/en-us/library/bb384063.aspx – Nkosi

+0

WOW danke, dass so viel mein Problem für fast eine Woche endlich gelöst hat. Ich bin ein Junior-Software-Entwickler, vielen Dank. Es ist wirklich eine große Hilfe. –

1

Gruppe von Ihrer Liste nach Datum Monat Wählen dann jede Zusammenfassung aller Unterschiede

var grouped = oList.GroupBy(d=>StartTime.Month).Select(c=>c.Sum(d=>(d.EndTime-d.StartTime)).ToArray(); 
Verwandte Themen