3
我假設在字典中進行查找時,需要對您提供的密鑰進行散列處理,然後使用該散列值查找您要查找的對象。在字典中使用對象作爲鍵是否「不好」?
如果是這樣,那麼使用較大的對象作爲鍵會顯着減慢這種查找的速度,還是會導致使用字符串或簡單數據類型作爲鍵時不會遇到的其他後果?
我假設在字典中進行查找時,需要對您提供的密鑰進行散列處理,然後使用該散列值查找您要查找的對象。在字典中使用對象作爲鍵是否「不好」?
如果是這樣,那麼使用較大的對象作爲鍵會顯着減慢這種查找的速度,還是會導致使用字符串或簡單數據類型作爲鍵時不會遇到的其他後果?
是的,使用可變對象作爲字典鍵是一個壞主意。
看看https://stackoverflow.com/a/7941876/400760,讓我相信會有意想不到的後果,即使正確實施的GetHashCode()基於如何基於哈希的集合通常實現。
使用不可變對象作爲字典鍵應該是安全的。
似乎有點臭。什麼是用例? – NWard
如果這些對象的'GetHashCode'方法被正確實現,那麼應該沒有任何問題 – Alberto
沒關係,但要重寫GetHashCode()和Equals()方法 –