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


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow