Visual Basic .NET Language
Wörterbücher
Suche…
Einführung
Ein Wörterbuch repräsentiert eine Sammlung von Schlüsseln und Werten. Siehe MSDN Dictionary (Tkey, TValue) -Klasse .
Durchlaufen Sie ein Wörterbuch und drucken Sie alle Einträge
Jedes Paar im Wörterbuch ist eine Instanz von KeyValuePair
mit denselben Typparametern wie das Wörterbuch. Wenn Sie mit For Each
durch das Wörterbuch For Each
, erhalten Sie bei jeder Wiederholung eines der im Wörterbuch gespeicherten Schlüsselwertpaare.
For Each kvp As KeyValuePair(Of String, String) In currentDictionary
Console.WriteLine("{0}: {1}", kvp.Key, kvp.Value)
Next
Erstellen Sie ein mit Werten gefülltes Wörterbuch
Dim extensions As New Dictionary(Of String, String) _
from { { "txt", "notepad" },
{ "bmp", "paint" },
{ "doc", "winword" } }
Dadurch wird ein Wörterbuch erstellt und sofort mit drei KeyValuePairs gefüllt.
Sie können neue Werte auch später mit der Add-Methode hinzufügen:
extensions.Add("png", "paint")
Beachten Sie, dass der Schlüssel (der erste Parameter) im Wörterbuch eindeutig sein muss. Andernfalls wird eine Ausnahme ausgelöst.
Einen Wörterbuchwert abrufen
Sie können den Wert eines Eintrags im Wörterbuch über die Eigenschaft 'Item' abrufen:
Dim extensions As New Dictionary(Of String, String) From {
{ "txt", "notepad" },
{ "bmp", "paint" },
{ "doc", "winword" }
}
Dim program As String = extensions.Item("txt") 'will be "notepad"
' alternative syntax as Item is the default property (a.k.a. indexer)
Dim program As String = extensions("txt") 'will be "notepad"
' other alternative syntax using the (rare)
' dictionary member access operator (a.k.a. bang operator)
Dim program As String = extensions!txt 'will be "notepad"
Wenn der Schlüssel nicht im Wörterbuch vorhanden ist, wird eine KeyNotFoundException ausgelöst.
Bereits im Wörterbuch nach Schlüssel suchen - Datenreduzierung
Mit der Methode ConstainsKey
, ob ein Schlüssel bereits im Wörterbuch vorhanden ist.
Dies ist praktisch für die Datenreduzierung. In dem folgenden Beispiel fügen wir jedes Mal, wenn wir auf ein neues Wort stoßen, es als Schlüssel im Wörterbuch hinzu, ansonsten erhöhen wir den Zähler für dieses bestimmte Wort.
Dim dic As IDictionary(Of String, Integer) = New Dictionary(Of String, Integer)
Dim words As String() = Split(<big text source>," ", -1, CompareMethod.Binary)
For Each str As String In words
If dic.ContainsKey(str) Then
dic(str) += 1
Else
dic.Add(str, 1)
End If
Next
Beispiel für die XML-Reduzierung: Abrufen aller untergeordneten Knoten und Vorkommen in einem Zweig eines XML-Dokuments
Dim nodes As IDictionary(Of String, Integer) = New Dictionary(Of String, Integer)
Dim xmlsrc = New XmlDocument()
xmlsrc.LoadXml(<any text stream source>)
For Each xn As XmlNode In xmlsrc.FirstChild.ChildNodes 'selects the proper parent
If nodes.ContainsKey(xn.Name) Then
nodes(xn.Name) += 1
Else
nodes.Add(xn.Name, 1)
End If
Next