繁体   English   中英

DateTime作为SortedDictionary <K,V>中的键

[英]DateTime as key in a SortedDictionary<K, V>

我可以安全地使用DateTime作为SortedDictionary<K, V>而不实现我自己的IComparer吗?

我已经尝试了它并且维护了排序顺序,重要的是我的目的.ContainsKey<T>方法按预期工作。 但我只想在将自己投入这条道路之前进行双重检查。

我工作得很好,因为DateTime实现了IComparable<DateTime> 所以你可以依赖Comparer(T).Default

在内部, DateTime使用刻度来比较2个日期。

你不需要新的IComparer。 您的默认IComparer将使用您的值对象中的GetHashCode()并与之进行比较/排序。 由于DateTime类型正确实现了GetHashCode(),因此默认IComparer将按您的意愿排序(就像您发现的那样)。

创建新的比较器更适合您自己编写的复杂集合。 我写过一次复杂的比较器。 这有点令人兴奋。

我没有预见到任何问题; 在幕后,该值是一个长刻度值。

此外,确保所有值都基于相同的时区 - 我个人使用UTC / GMT进行存储和计算,并在显示时仅调整到当地时间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM