Wie zum Wörterbuch benutzen VB.net?
Ich geschrieben habe, ist diese Funktion auf auto richtige Geschlecht M oder F ist von unterschiedlichen Werte in einem string-array. Es funktioniert gut, aber mein manager hat mir gesagt, Wörterbuch benutzen, welches er sagte, ist effizienter. Aber ich habe keine Ahnung. Jemand möchte mir helfen, zu verstehen, wie dies getan werden kann ? Danke.
Public Function AutoGender(ByVal dt As DataTable) As DataTable
Dim Gender As String = ""
Dim Mkeywords() As String = {"boy", "boys", "male", "man", "m", "men", "guy"}
Dim Fkeywords() As String = {"girl", "girls", "female", "woman", "f", "women", "chick"}
Dim row As DataRow
For Each row In dt.Rows
If Mkeywords.Contains(row("Gender").ToString.ToLower) Then
Gender = "M"
row("Gender") = Gender
ElseIf Fkeywords.Contains(row("Gender").ToString.ToLower) Then
Gender = "F"
row("Gender") = Gender
End If
Next
Return dt
End Function
Vielleicht kann dies helfen, dotnetperls.com/dictionary-vbnet
InformationsquelleAutor lawphotog | 2012-06-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist ein Beispiel, wie man sich die Umsetzung der
Dictionary(Of String, String)
nachschlagen, ob diesem synonym bekannt ist oder nicht:Hinweis, dass ich die collection-Initialisierer zu füllen, die Wörterbuch , ist ein bequemer Weg, um Literale initialisiert Sammlungen. Sie können auch die
Add
Methode.Bearbeiten: Nur ein weiterer Ansatz, die vielleicht präziser ist die Verwendung von zwei
HashSet(Of String)
, eine für die männlichen Synonyme und eins für die weiblichen:Einen
HashSet
muss auch einzigartig sein, es darf keine doppelteStrings
(wie der Schlüssel in derDictionary
), aber es ist nicht ein Schlüssel-Wert-paar, sondern nur einen Satz.Vielen Dank, Tim ... du bist der beste !
InformationsquelleAutor Rango
Ändern Sie einfach die beiden arrays, dictionaries und eine
ContainsKey
stattContains
.(und die Folgen für die weibliche)
Jedoch, wie Euch vielleicht aufgefallen ist habe ich in all den leeren Saiten. Dies ist, weil die Wörterbücher haben Werte wie auch die Tasten, aber da sind wir nicht mit den Werten, ich habe Sie leere Zeichenfolgen. Die gleichen
O(1)
lookup-aber ohne all die überflüssigen Werte, die Sie verwenden können, eineHashSet
in einer ähnlichen Weise.Alles, was Sie ändern müssen, ist nun, wie ich schon sagte, verwenden Sie
ContainsKey
(oder fürHashSet
wenn Sie diesen Weg gehen, es ist nur nochContains
):Ein letzter Hinweis: dies wird nur "effizienter", wenn die Daten beginnt zu wachsen in der Größe erheblich. Jetzt haben Sie es, nur mit diesen wenigen Elementen kann es sogar langsamer sein, verwenden Sie ein Wörterbuch.
InformationsquelleAutor