我描述的地址結構,它看起來像:如何爲地址結構生成唯一標識符?
class Address
{
public string AddressLine1 { get; set; }
public string AddressLine2 { get; set; }
public string City { get; set; }
public string Zip { get; set; }
public string Country { get; set; }
}
我正在尋找一種方法來創建這個結構的唯一標識符(我認爲它應該是一個類型的還string
),這取決於所有的結構屬性(例如AddressLine1
的改變也將導致結構標識符的改變)。
我知道,我可以將所有屬性連接在一起,但是這會給出太長的標識符。我正在尋找比這更短的東西。
我還假設不同地址的數量不應該超過100M。
有關如何生成此標識符的任何想法?
在此先感謝。
這方面的一個史前:
有在舉辦一些信息+地址數據的數據庫幾個不同的表。數據以與上述類似的格式存儲。
不幸的是,將地址數據移動到一個單獨的表中現在非常昂貴,但我希望它將在未來完成。
我需要將一些額外的屬性與地址數據關聯起來,併爲此創建一個單獨的表。這就是爲什麼我需要唯一標識地址數據。
請給我們更多的上下文。幾乎可以肯定有更好的方法來解決這個問題。 – 2013-04-07 11:54:50
在一般意義上,沒有辦法做出完美的散列函數。您需要首先擁有所有這些100M獨特地址,然後纔有可以創建您的函數的算法和軟件,這些函數可以將每個地址映射到唯一的數字,而不必將它們全部存儲起來。正如喬恩所說,與嘗試創建完美的哈希值相比,很可能有更好的方法來處理您的問題。 – 2013-04-07 11:57:19