2013-01-22 130 views
2

我一直認爲任何指標應該是唯一的,但我認爲這是不正確的,至少對於如下面的帖子所示的SQL Server:清單,非唯一索引

Do clustered indexes have to be unique?

最近我必須在一個集合中存儲大量的數據,並考慮使用字典,因爲它是通過索引獲取對象的最快集合。但我的收藏必須允許重複的密鑰。但實際上重複鍵不會成爲問題,因爲返回的任何對象都將滿足要求(對象不完全是唯一的,但鍵是)。

一些更多的研究,導致我下面的帖子:

C# Hashset Contains Non-Unique Objects

這都說明一種方式來獲得與「重複鍵」 HashSet的。他的問題將是我的解決方案,但我想知道是否有其他方式可以使用重複鍵列表,這使得我可以快速搜索,而無需執行任何解決方法。

+0

如果您有重複鍵你怎麼得到的物品運使用的密鑰有可能超過1,或者是你在返回的許多項目計劃,如果有超過1個具有相同名單指數???而據我所知沒有字典或列表實現允許重複的鍵,你將不得不從頭開始建立一個,這就是爲什麼即使使用一個密鑰,就好像有重複它的redundent。 –

+0

我很高興你引用了其他問題,但請編輯你的問題,以便我不必閱讀其他問題以瞭解你的問題。 –

+0

@JohnSaunders謝謝你的提示,我希望現在更清楚一點。我會盡力改進未來的帖子。 – Androiderson

回答

0

「重複索引將不會是一個問題,因爲任何人會被滿足要求」

如果這一點,你的意思是獲得存儲針對同一指標值的任何一個項目是滿意的你當按索引檢索一個項目時,一個簡單的Dictionary就足夠了。

E.g.

Dictionary<int, string> myData = new Dictionary<int, string>(); 

myData[1] = "foo"; 
myData[2] = "bar"; 
myData[2] = "baz"; // overwrites "bar" 

var myDatum = myData[2]; // retrievs "baz" not "bar", but this is satisfactory. 
+0

不是我所期望的,但解決了問題! – Androiderson