Sto cercando una procedura ottimale per il conteggio di quante volte ciascuna data si verifica in un elenco.C# Best practice: contare quante volte ciascuna data si verifica
Per ora, ho un codice funzionante (appena testato) ma penso che il modo in cui l'ho fatto non sia così buono.
var dates = new List<DateTime>();
//Fill list here
var dateCounter = new Dictionary<DateTime, int>();
foreach (var dateTime in dates)
{
if (dateCounter.ContainsKey(dateTime))
{
//Increase count
dateCounter[dateTime] = dateCounter[dateTime] + 1;
}
else
{
//Add to dictionary
dateCounter.Add(dateTime, 1);
}
}
Chi conosce una soluzione migliore?
FYI: Il problema principale che avrei con questo è per ogni data ripetuto, si guarda nella lista 3 volte ('Contains' e ogni' dateCounter [data_ora] '). Può essere fatto con una sola ricerca. –