2012-02-16 6 views
1

どのようにC#でキーベースでハッシュテーブルをソートするのですか?

など。キーベースでHashtableをソートする?

Hastable hst = new Hashtable(); 
hst.Add("Key1","keyValue"); 
hst.Add("Key2","keyValue"); 
hst.Add("Key3","keyValue"); 
+3

*ソート*という概念は、ハッシュテーブルに対してほとんど意味をなさない。 –

+0

必要は何ですか? –

+0

[c#Hashtableはキーでソートされています](http://stackoverflow.com/questions/9280054/c-sharp-hashtable-sorted-by-keys) – GSerg

答えて

3

あなたはソート強く型付けされたハッシュテーブルが必要な場合は、ハッシュテーブルに固執する場合は、SortedDictionary<TKey, TValue>

var hst = new SortedDictionary<string, string>(); 
hst.Add("Key1","keyValue"); 
hst.Add("Key2","keyValue"); 
hst.Add("Key3","keyValue"); 

を使用することができます。この質問で

IEnumerable<DictionaryEntry> sortedEntries = hst.OrderBy(entry => entry.Key); 
1

見て、答えを素晴らしいです。 Is it possible to sort a HashTable?

ハッシュテーブルは、キーを値にマッピングすることによって動作します。このマッピングでは、キーが特定の順序でソートされたり格納されたりしないという概念が暗示されています。 SortedDictionary<K,V>.

もう1つの方法は、すでに行っているようにハッシュテーブルを作成して、単純にキーからソートされたセットを作成することです。ソートされたキーセットを反復し、必要に応じてハッシュテーブルから対応する値を取得することができます。