我需要根據數據結構的值鍵入字典。我想知道創建這個密鑰的最佳方式是什麼?確保數據結構中值的唯一性的最佳方法?
數據結構有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