2016-03-22 11 views
-2

ハッシュテーブルをキー値の昇順でループしたい、intは1-20の間に設定します。c#逆の順序でハッシュテーブルを反復する

オリジナルコード:

IDictionaryEnumerator crcEnumerator = crcHashTable.GetEnumerator(); 

while(crcEnumerator.MoveNext()) 
{ 
    // does stuff with the keys/values 
} 

ハッシュテーブルを介してなく(20 1、代わりに昇順の)逆の順序でループします。

私は

foreach(DictionaryEntry de in crcHashTable) 

を使用しようと試みたが、それはまだ逆の順序でハッシュテーブルをループします。

ハッシュテーブルのキー値に基づいて昇順にループスルーする方法はありますか。

ありがとうございました!

+3

あなたは10年の廃止されたハッシュテーブルを使用している理由は? – usr

+3

コレクションと順序を反復する必要がある場合は、SortedDictionaryとIEnumerableの逆方法を試してください。 – n8wrl

+0

'forループ'を使ってみてください。 '++'インクリメントを使う代わりに '--'を使用すると十分ですリバースの 'Collection'をループする方法の例です。これらの例をスターターとして使うことができます。 – MethodMan

答えて

0

間違ったデータ構造を使用しています。代わりにSortedDictionaryを使用してください:

Hashtable hash = new Hashtable(); 
hash[3] = "three"; 
hash[1] = "one"; 
hash[2] = "two"; 

var dictionary = hash.Cast<DictionaryEntry>().ToDictionary(kvp => (int)kvp.Key, kvp => (string)kvp.Value); 
var sorted = new SortedDictionary<int, string>(dictionary); 

だけ含まれていることを確認してください:

using System.Collections; 
using System.Collections.Generic; 
using System.Linq; 
関連する問題