我正在使用SortedDictionary<Key, Value>
來存儲排序的列表的Key
s,但不關心存儲Value
s。 Key
有一套唯一標準,另一套用於分類(即GetHashValue()
和Equals(Object obj)
使用的屬性與CompareTo(Key key)
使用的屬性不同)。當你不關心數值時,是否有使用C#的SortedDictionary <Key, Value>的常用風格?
我知道它只存儲對Value
的引用,所以內存使用量很小。在我的使用案例中,我永遠不需要訪問存儲在字典中的KeyValuePair<Key, Value>
的Value
部分。
是否有一些約定在這些情況下指定使用哪種對象Value
?我目前對Key
和Value
使用同一個對象,即類型爲Dictionary<Key, Key>
,我使用的是.Add(key, key)
來添加對象。
同樣的問題適用於SortedList<Key, Value>
,但在這種情況下我需要插入性能SortedDictionary<Key, Value>
。
太棒了。我在Java中更流利,所以我不太瞭解C#中可用的集合。在Oracle文檔中,當您查看Collection(http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html)的文檔時,可以找到「所有已知實現類」。微軟的C#文檔中有類似的東西嗎?我只是剛纔看到SortedSet 幾乎沒有提到Sorted Collection Types的底部(https://msdn.microsoft.com/en-us/library/5z658b67.aspx) –
austinian
@austinian標準通用集合的列表非常短: https://msdn.microsoft.com/library/system.collections.generic.aspx或者如果你想要完整列表,請從這裏開始:https://msdn.microsoft.com/library/gg145035.aspx(專業收藏很少使用,「對象模型集合」是一個基礎,一個可觀察的和幾個只讀的,這使得併發和通用)。 NuGet上也有不可變的集合。這就是它。 – Athari