Diskuze: List<> triedenie podla datumu
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 5 zpráv z 5.
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Trochu jsem nad tím uvažoval a jedno z řešení by mohlo aspoň zhruba vypadat takto:
public List<Report> GroupByDate(List<Report> reports){
List<DateTime> usedDates = new List<DateTime>();
List<Report> grouped = new List<Report>();
int value;
for(int i = 0; i<= reports.Count; i++){
if(!usedDates.Contains(reports[i].Date)){
value =0;
for(int j = i; j <= reports.Count; j++){
if ( reports[j].Date == reports[i].Date ){
value =+ reports[j];
}
usedDates.Add(reports[i].Date);
grouped.Add(new Report(value, reports[i].Date));
}
}
}
}
Snad je to v pořádku. Případně to lze udělat jako Extension metodu.
Mohl bys to řešit více způsoby:
Například pomocí Linq seskupíš kolekci takto
var grpReporty = reporty.GroupBy(g => g.date).Select(s => new { date = s.Key.Date,value = s.Sum(x => x.value)});
Zobrazeno 5 zpráv z 5.