我需要根据数据结构的值键入字典。我想知道创建这个密钥的最佳方式是什么?确保数据结构中值的唯一性的最佳方法?
数据结构有3个值:两个字符串和一个日期时间。这三个值组合在一起表示我的字典的“唯一”键。浮现在脑海
public class RouteIdentity
{
public string RouteId {get;set;}
public string RegionId {get;set;}
public DateTime RouteDate {get;set;}
}
一种解决方案是一个属性添加到RouteIdentity
(称为Key
吧?),它返回3个唯一值的一定的代表性。 Key
的类型将是字典的键值的类型。 Key
可能是一个字符串值,它简单地连接了各种属性,但这看起来非常低效。我想如果有一种方法来实现一个快速的哈希函数来返回一个不同类型,也可能工作。
另一种可能是覆盖等于运算符RouteIdentity
。我想这可能是一个更好的方法,但我不确定如何覆盖GetHashCode()
功能的这种目的。
任何人都可以阐明什么是最佳的方法是这种情况下?如果您觉得最好使用操作符重载,请您提供一些关于如何正确实现它的指导?
在此先感谢。
谢谢。出于好奇,397在GetHashCode()实现中有什么意义? – pdriegen 2012-07-30 14:33:24
@pdriegen:这是一个改进GetHashCode()函数分布的素数(参见http://stackoverflow.com/questions/1145217/why-should-hash-functions-use-a-prime-number-模量)。 – ulrichb 2012-07-30 14:47:58