Poszukuję najlepszej praktyki do liczenia ile razy każda data występuje na liście.C# Najlepsza praktyka - Liczenie, ile razy występuje dana data
Na razie mam działający kod (właśnie testowany), ale myślę, że sposób, w jaki to zrobiłem, nie jest tak dobry.
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);
}
}
Ktoś, kto zna lepsze rozwiązanie?
FYI: Głównym problemem musiałbym z tym jest dla każdego powtarzanego daty, patrzysz się na listę 3 razy ('Contains' i każdy' dateCounter [dateTime] '). Można to zrobić za pomocą tylko jednego wyszukiwania. –