ハッシュテーブルの順番が意図したとおりに並ばない

タグの編集
投稿者 はっしゅ  (学生) 投稿日時 2009/1/7 19:26:53
ハッシュテーブルを追加した順番に並べたいのですが、うまくいきません。
ご教授よろしくお願いします。

ハッシュテーブルのKeyが2,9,1もしくは、1,9,2のように並んでほしいのですが、
9,1,2の順に並んでいます。


        Dim ary() As String = {"aa""bb""cc"}
        Dim stary() As String = {"2""9""1"}
        Dim hash As New Hashtable
        For i As Integer = 0 To ary.Length - 1
            hash(stary(i)) = ary(i)
        Next
投稿者 はっしゅ  (学生) 投稿日時 2009/1/7 19:35:00
ソーテッドリストだとKeyが1,2,9の順に並びます。
ソーテッドリストを使えばいいんでしょうか?
投稿者   (社会人) 投稿日時 2009/1/7 21:35:59
こんにちは。

追加した順番を保持したいのですよね?
System.Collections.Specialized名前空間の
OrderedDictionaryクラスなら順序を保持できるようです。

「Sortedlistに関して」
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=39206&forum=7
投稿者 はっしゅ  (学生) 投稿日時 2009/1/7 23:10:31
鍵さん。ありがとうございます。
順番を保持できるようになりました。

ただKeyの取得方法はどうすればよいのでしょうか。
教えていただけないでしょうか。
よろしくお願いします。
投稿者   (社会人) 投稿日時 2009/1/8 05:22:05
Keysプロパティから取得することができます。

OrderedDictionary メンバ
http://msdn.microsoft.com/ja-jp/library/system.collections.specialized.ordereddictionary_members(VS.80).aspx

OrderedDictionary.Keys プロパティ
http://msdn.microsoft.com/ja-jp/library/system.collections.specialized.ordereddictionary.keys(VS.80).aspx
投稿者 はっしゅ  (学生) 投稿日時 2009/1/8 18:38:49
鍵さん。ありがとうございます。
すみません。調査不足でした。