C# 最佳实践 - 计算每个日期出现的次数

标签 c# list datetime dictionary

我正在寻找一种最佳实践来计算每个日期在列表中出现的次数。

现在,我有工作代码(刚刚测试过),但我认为我的方式不太好。

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);
   }
}

谁知道更好的解决方案?

最佳答案

dates.GroupBy(d => d).ToDictionary(g => g.Key, g => g.Count());

关于C# 最佳实践 - 计算每个日期出现的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18080682/

相关文章:

python - Pandas 的日期时间默认为 1970

java - Android Python MySQL 日期时间解析

c# - 如何让 KeyedCollection 成为只读的?

python - 改进元组距离计算算法以提高时间效率

python - 对具有最接近值的整数列表进行分组

python - 根据部分字符串在列表中查找条目

Java 日期时间格式化程序

c# - 在 View 模型中使用 Caliburn 的 conductor<object> 时窗口标题被覆盖

c# - 我怎么能让 Resharper 或 Intellisense 知道一个方法总是抛出异常?

c# - 如何调用执行耗时任务的 DLL?