雇用主からハッシュテーブルをソートするように求められました。私はいつもハッシュテーブルの使い方は親切ではないと思っていました。私はこれを考えて間違っていますか?そうでなければ、良いVB.Net(はい、私を殺してくださいが、古いシステムです)の方法でハッシュテーブルをソートする方法を教えてください。ハッシュテーブルをソートする理由
ありがとうございました。
雇用主からハッシュテーブルをソートするように求められました。私はいつもハッシュテーブルの使い方は親切ではないと思っていました。私はこれを考えて間違っていますか?そうでなければ、良いVB.Net(はい、私を殺してくださいが、古いシステムです)の方法でハッシュテーブルをソートする方法を教えてください。ハッシュテーブルをソートする理由
ありがとうございました。
ファイルから名前と値のペアを読み込み、ファイルにリストされている順序で保存する必要がありますが、O(1)ルックアップ時間が必要な場合もあります。ソートされたハッシュテーブルは、どのように両方を達成するかです。
.NET 1.1では、System.Collections.SortedListを使用します。 .NET 2.0以降の場合は、System.Collections.Generic.SortedDictionaryを使用します。
私はDocMax's answerが好きです。
別のオプション:
ロールSortedListのかSortedDictionaryは、ボンネットの下に何をしているかのラインに沿った独自のソリューション:
(コードがわずかhereから改変)
Option Strict On
Imports System.Collections
Public Module modMain
Public Sub Main()
Dim myHashTable As New Hashtable
myHashTable.Add("C", "3")
myHashTable.Add("A", "1")
myHashTable.Add("B", "2")
Dim keys As ICollection = myHashTable.Keys
Dim keysArray(myHashTable.Count - 1) As String
keys.CopyTo(keysArray, 0)
Array.Sort(keysArray)
For Each key As String in keysArray
Console.WriteLine("{0} is {1}", key, myHashTable(key))
Next
End Sub
End Module
キューを使用してみてください:あなたはFIFO(先入れ先出し)の規則に従うために必要なものを取得する必要があるとき
キューは、Java、.NETなどのほとんどのOOPで使用されています。
スタックはLIFOである - 最初のうちで最後の...
Dim myQ As Queue(Of KeyValuePair(Of Integer, String)) = New Queue(Of KeyValuePair(Of Integer, String))
myQ.Enqueue(New KeyValuePair(Of Integer, String)(1, "one"))
myQ.Enqueue(New KeyValuePair(Of Integer, String)(2, "two"))
myQ.Enqueue(New KeyValuePair(Of Integer, String)(3, "three"))
'later on you can retrieve objects by
'myQ.Dequeue
Response.Write("<p>Queue</p>")
For Each kvp As KeyValuePair(Of Integer, String) In myQ
Response.Write(kvp.Key & " is " & kvp.Value & "<br>")
Next
Dim ht As Hashtable = New Hashtable()
ht.Add(1, "one")
ht.Add(2, "two")
ht.Add(3, "three")
Response.Write("<p>Hashtable</p>")
For Each kvp As DictionaryEntry In ht
Response.Write(kvp.Key & " is " & kvp.Value & "<br>")
Next
この雇用者は、先のとがった髪を持っていますか? – Josh
それは私にディルバートを考えるようになります... – yinyueyouge
私はこれに簡単な解決策を見つけましたhttp://blog.larmib.com/2012/sorting-vb-net-hashtable-sorting-resolved/ – LJ2010