‫Und in den letzten Videos haben wir über Hashtabellen gesprochen. In dieser Lektion werden wir also besprechen,
‫wie die generische Version von Hashtabellen aussieht und die generische Version von Hashtabelle Wörterbuch ist.
‫In diesem Video werden wir also sehen, wie Wörterbücher verwendet werden.
‫Ähnlich wie bei einer Hash-Tabelle speichert ein Wörterbuch seinen Wert und ein Schlüssel-Wert-Paar, wie wir
‫es beim Wörterbuch hatten, genau dort, wo wir gesagt haben, dass das Schlüssel-Wert-Paar für Auto Auto wäre.
‫OK, der Schlüssel wäre auto, was das deutsche Wort für Auto ist, und dann ist Auto der Wert, der
‫in diesem Wörterbuch enthalten ist.
‫OK, das ist also zum Beispiel ein Wörterbuch der realen Welt und ein Deutsch-Englisch-Wörterbuch.
‫Aber jetzt werden wir das Programmierwörterbuch verwenden.
‫Also cis-Wörterbücher, die ein Schlüssel-Wert-Paar haben, wie wir es hier haben, wo wir den Wert speichern, der einem bestimmten Schlüssel
‫zugewiesen ist.
‫OK, also lass uns weitermachen und ein Wörterbuch definieren.
‫Aus der Microsoft-Dokumentation ist das Wörterbuch also so definiert, dass es in etwa
‫so aussieht wie dieser Wörterbuch-Tekite-Wert.
‫Das bedeutet im Wesentlichen, dass wir die Typen unserer Schlüssel und Werte in der
‫Deklaration ähnlich wie bei einer Liste angeben müssen.
‫OK, also musste eine Liste auch einen bestimmten Typ haben.
‫Eine Liste könnte vom Typ Integer sein, sie könnte vom Typ String sein, sie könnte vom Typ Objekt sein und so weiter.
‫Aber wir mussten definieren, von welchem Typ diese Liste sein muss.
‫Das gleiche gilt für Wörterbuch, aber sie sind es nicht.
‫Wir müssen es sowohl für den Schlüssel als auch für den Wert definieren.
‫OK, das ist im Grunde das, was dieser T. S. A. Wert bedeutet.
‫OK, das bedeutet also, dass wir viel Flexibilität haben, aber nicht die Flexibilität, die wir in der Hash-Tabelle
‫hatten.
‫Im Grunde können wir also ein Wörterbuch wie dieses hier erstellen, in dem wir sagen, dass der Schlüssel vom Typ
‫in Ditcher und der Wert vom Typ string ist.
‫Und um Wörterbücher verwenden zu können, müssen wir natürlich sicherstellen, dass wir ein System haben, das so
‫generisch erfasst.
‫Sie sehen also, dass ein Wörterbuch eine generische Sammlung ist.
‫Wir haben in einem anderen Video gesehen, dass es einen Unterschied zwischen generischen und
‫nicht generischen Sammlungen oder Hash-Tabellen für nicht generische Sammlungen gibt und Wörterbücher generische Sammlungen sind.
‫Sie haben also alle Vor- und Nachteile.
‫Dieses Wörterbuch hat jetzt also eine ganze Zahl, sozusagen eine Zahl, und einen Wert, der eine Zeichenfolge ist, also wird
‫die Zahl der Schlüssel und die Zeichenfolge der Wert sein.
‫Nun, hier erstellen wir dieses Wörterbuch namens Mein Wörterbuch und
‫initialisieren es sofort mit einem leeren Wörterbuch. Wir können dann dieses Wörterbuch verwenden, um diesem
‫Wörterbuch Werte hinzuzufügen.
‫Wir können zum Beispiel auch gleich die Werte des Wörterbuchs definieren.
‫Also in der gleichen Zeile, im Grunde genau hier.
‫So könnten wir zum Beispiel einfach sagen: OK, so wird das Wörterbuch aussehen.
‫Wo wir einen Entertainer und eine Saite haben.
‫Wir haben also den einen Entertainer hier, den Schlüssel und den Text dafür wäre der
‫Wert.
‫Jetzt haben wir also den Entertainer-Typ und dann das gesprochene englische Wort für was auch immer es ist, ganze Zahlen.
‫OK, also wäre eins eins, zwei wären zwei, drei wären drei und so weiter.
‫Nun sind Wörterbücher natürlich nicht auf ganze Zahlen beschränkt und Strings können viel komplexere Werte verwenden.
‫Wir speichern.
‫OK, lassen Sie uns hier zum Beispiel diskless betrachten.
‫Also erstelle ich eine neue Klasse namens Employee.
‫Ich werde es in die gleiche Datei legen.
‫Aber natürlich können Sie eine separate Datei erstellen.
‫Wir haben also ein paar Eigenschaften wie Rolle, Name, Alter und Tarif für jeden einzelnen Mitarbeiter.
‫OK, und dann haben wir das Gehalt, das ist ein Float, und es gibt den Satz von achtmal, fünfmal
‫viermal zwölf zurück.
‫OK, was auch immer der Satz ist, dieser Wert wird das sein, was wir als Gehalt speichern oder
‫erhalten.
‫Wenn wir also das Gehalt abrufen würden, wird das Gehalt direkt für uns berechnet.
‫Also acht Stunden mal, fünf Tage mal, vier Wochen mal, 12 Monate.
‫So wird also quasi das Jahresgehalt berechnet.
‫Natürlich mal die Rate.
‫Nehmen wir nun an, wir haben eine Mitarbeiterdatenbank wie die von uns.
‫Ich gehe davon aus, dass dies unsere Mitarbeiterdatenbank sein wird und habe übrigens gerade festgestellt, dass
‫ich hier beim Erstellen des Konstruktors die Rate verpasst habe.
‫Dieser Konstruktor wird also jetzt auch die Rate verwenden und die Rate hier zuweisen und jetzt können wir unsere Daten
‫aus der Datenbank verwenden.
‫OK, wir haben also die Datenbank, in der wir den Titel bekommen, wir den Namen, wir bekommen das was es ist, das
‫Alter der super alten Dame, 95 Jahre alt.
‫Und dann haben wir ihre Rate.
‫Sie hat also eine Rate von zweihundert.
‫Dann haben wir den Manager, Joe, der 35 ist, eine Rate von 25 hat und so weiter.
‫Was ich jetzt tun werde, ist, dieses Wörterbuch hier nicht zu verwenden, ich werde
‫ein separates Wörterbuch erstellen, das ich Mitarbeiterverzeichnis nennen werde, und dieses Mitarbeiterverzeichnis wird im Wesentlichen einen
‫Schlüsselwert haben Paar String Mitarbeiter.
‫Es wird also für eine bestimmte Zeichenfolge das gesamte Mitarbeiterobjekt speichern.
‫Und ich werde dieses Mitarbeiterverzeichnis anrufen.
‫OK, und die Zeichenfolge, die wir verwenden werden, ist die Mitarbeiterrolle.
‫OK, hier werde ich dies für jede Schleife verwenden, die jetzt jeden einzelnen Mitarbeiter in
‫meiner Mitarbeiterdatenbank durchläuft.
‫Das ist also meine Mitarbeiterdatenbank.
‫Ich fälsche es sozusagen.
‫Rechts.
‫Es durchsucht jedes einzelne Element dieser Mitarbeiterdatenbank und fügt es
‫meinem Mitarbeiterverzeichnis an der Position oder dem Schlüssel der Rolle, dem Mitarbeiter selbst, hinzu.
‫Okay, also hier sind wir, angenommen, dass wir für jede einzelne Rolle nur einen Mitarbeiter haben.
‫Sonst würde das das ganze System vermasseln.
‫Dies ist also ein Beispiel dafür, wie wir ein Wörterbuch mit Daten aus einer gefälschten Datenbank erstellen können, die im
‫Grunde nur aus einer Reihe von Mitarbeitern besteht, die wir hier definiert haben.
‫Was ist nun, wenn wir die Daten aus einem Wörterbuch abrufen möchten?
‫Wir möchten also Daten aus einem Wörterbuch abrufen und sagen wir, wir möchten Daten des Mitarbeiters abrufen, der
‫der CEO ist.
‫Das hat also die Position des CEO.
‫Dann können wir Mitarbeiter werden.
‫Ich rufe diesen einen Mitarbeiter an und wir holen ihn aus dem Mitarbeiterverzeichnis.
‫Und hier sagen wir einfach: OK, ich möchte den CEO haben.
‫Ich möchte also die Person und vielleicht auch das gesamte Objekt dieser Person kennen, die Zevo als Titel
‫hat.
‫Im Grunde nur, wenn ich sage, wo der Schlüssel für meine Wörterbuchmitarbeiter sein wird, nehmen Sie das Verzeichnis dorthin.
‫Ich möchte wissen, wer der CEO ist, und möchte den gesamten Mitarbeiter in einem Objekt speichern, damit ich
‫die Details dieses Mitarbeiters über eine Konsole anzeigen kann.
‫Rechts.
‫Line-Anweisung so.
‫Also hier sage ich den Angestelltennamen, der dann die Rolle sowie das Gehalt sein wird.
‫Dies wird also angezeigt.
‫OK, im Grunde erhalten wir also das Gehalt basierend auf dem Tarif und dieser Berechnung
‫hier, es wird die Rolle direkt erhalten und wir erhalten den Namen direkt aus dem Mitarbeiterobjekt selbst.
‫Also von diesem Mitarbeiterobjekt.
‫Okay, also lassen Sie uns das jetzt ganz schnell machen und sehen, was Quinn verdienen wird, wenn man bedenkt,
‫dass sie Vollzeit arbeitet und wir sehen, dass sie ein Gehalt von RIANNE 84000 hat.
‫Ihr Name ist Quinn, ihre Rolle als CEO.
‫Das Ausführen dieses Codes funktioniert also, wie Sie sehen, hier gibt es kein Problem, aber das Problem könnte sein, dass
‫wir einen falschen Wert eingeben.
‫Sagen wir, statt CEO suche ich den CTO, also den Technischen Offizier.
‫Also der Chief Technical Officer.
‫Und wenn ich dies ausführe, stürzt meine Anwendung ab.
‫Es heißt also, dass CTO im Wörterbuch nicht vorhanden war.
‫Der Schlüssel wurde also nie gegeben.
‫Um das zu beheben, können wir im Grunde überprüfen, ob der Schlüssel vorhanden ist.
‫Hier wäre eine sehr gute Möglichkeit, dies zu überprüfen, indem Sie einen Schlüssel namens SEO oder einen String namens Key
‫erstellen, der den Wert von SEO hat.
‫Und dann checken wir das Mitarbeiterverzeichnis.
‫Für diesen bestimmten Schlüssel sehen Sie also, dass enthält Schlüssel hier eine der Favoriten oder Favoritenoptionen ist, also enthält
‫Schlüssel, und dann können wir hier die Zeichenfolge als Schlüssel übergeben, die wir überprüfen möchten.
‫Enthält es also den Schlüssel namens CEO?
‫Wenn ja, dann diesen Code hier ausführen?
‫Und wenn nicht, dann führen Sie es nicht aus.
‫Oder Sie könnten natürlich auch einfach sagen, dass dieser Schlüssel nicht existiert.
‫Jetzt könnten Sie also eine kleine Anwendung erstellen, die es Ihnen ermöglicht, einen Schlüssel einzugeben, und dann überprüft
‫Ihre Anwendung, OK, existiert dies oder nicht?
‫Und hier sollte dies übrigens durch Schlüssel ersetzt werden.
‫Es wird nicht mehr hart codiert.
‫Nun, es ist fest codiert und sozusagen an einer anderen Stelle.
‫Aber dies könnte etwas sein, das wir durch Benutzereingaben erhalten oder der Benutzer aus einer Benutzeroberfläche erstellt wurde oder
‫ähnliches.
‫Und dann würde die Anwendung die Daten abrufen und diese anstelle einer neuen Konsolenanwendung in einer
‫tatsächlichen Benutzeroberfläche anzeigen.
‫Und Sie werden später sehen, wie Sie Ihre Augen verwenden oder wie Sie Ihre Augen mit dem bauen.
‫Das ist also eine Möglichkeit, das Problem zu umgehen, eine andere wäre, etwas namens try get value zu
‫verwenden.
‫OK, also lassen Sie mich schnell ein wenig Code hinzufügen und es durchgehen.
‫Nehmen wir an, wir haben diesen MTA-Mitarbeiter, den ich result nenne, und er ist leer, weil ich
‫ihn ab und zu gesagt habe. Ich überprüfe das Mitarbeiterverzeichnis, ob es den Wert namens inturn hat und verwende diese Methode
‫try get value.
‫Versuchen wir
‫also, die Methode get value zurückzugeben.
‫Dieses Ergebnis wird also tatsächlich unvollständig sein.
‫Versuchen Sie also get value, wird versuchen, den Wert zu erhalten, den wir hier übergeben, und wenn es funktioniert hat, wird die Lautstärke zurückgegeben.
‫Wahr.
‫So wird diese Anweisung ausgeführt und gleichzeitig wird das Ergebnis in diese Variable geschrieben.
‫Das Ergebnis wird also in diese Ergebnisvariable eingetragen.
‫Der Wert, den wir aus unserem Mitarbeiterverzeichnis abrufen, wird also im Ergebnis gespeichert.
‫OK, das ist es, was diese Aussage hier sagt.
‫Und wenn es tatsächlich funktioniert hat und es wiederum existiert, dann wird dieser Code ausgeführt und ansonsten wird dieser
‫Code ausgeführt.
‫Dieser Schlüssel existiert also nicht.
‫Das wäre also nur eine andere Möglichkeit, das gleiche Problem zu umgehen.
‫Versuchen Sie also, Wert zu erhalten, funktioniert auch gut.
‫Also gut, Sie haben einen Angestellten namens Ernest Turn 22 gefunden und er bekommt ein Gehalt von tausend Euro im Jahr
‫oder was auch immer Sie hier für Geld wollen.
‫OK, lassen Sie uns nun etwas tiefer graben, denn wir können auch ein Element mit der Methode element at
‫erhalten, also ein Element unseres Wörterbuchs.
‫Wie wir oder Sie gelernt haben, wird ein Wörterbuch hier eine Struktur verwenden.
‫Ein Wörterbuch ist also eine Sammlung von Schlüssel-Wert-Paaren, eine Struktur, die wie ein Schlüssel-Wert-Paar definiert
‫ist, das hier in etwa so aussehen wird.
‫Schauen wir uns das also dieses Jahr an.
‫Wir haben also den Schlüssel und den Wert.
‫Dies ist also das Schlüssel-Wert-Paar.
‫Das ist es, was ein Wörterbuch enthält.
‫Schauen wir uns das hier für eine Schleife an und von mir können Sie es tatsächlich hier platzieren.
‫Diese for-Schleife wird also diese Methode zum Hinzufügen von Elementen verwenden.
‫Um es verwenden zu können, müssen wir jedoch einen Link implementieren.
‫Akzeptieren Sie also vorerst, dass der Link ein leistungsstarkes Werkzeug ist, das es uns ermöglicht, auf sehr effiziente Weise mit Sammlungen zu
‫arbeiten.
‫Und wir werden später ein zusätzliches Kapitel haben, in dem wir uns speziell mit Links befassen.
‫Aber jetzt akzeptieren wir es einfach so.
‫OK, sobald Sie zu den späteren Kapiteln kommen, werden Sie mehr darüber erfahren und dann wird dies mehr Sinn
‫machen.
‫Okay, also in unserem Fall.
‫Und dieses spezielle Beispiel, in dem wir unser Schlüsselwertpaar mit dem Schlüssel und dem Wert haben, bei dem Teekay.
‫Ist der Typ unserer Schlüssel unseres Wörterbuchs und das gleiche gilt für den Teewert, der in unserem Fall der
‫Wert unseres Wörterbuchs ist, es ist String und Angestellter, wenn wir uns das ansehen.
‫OK, für unser Wörterbuch, das wir hier erstellt haben, sind es String und Employee.
‫Aber intern steckt hinter diesem String-Schlüssel auch ein ganzzahliger Wert, also sozusagen eine Zahl.
‫OK, sagen wir also, dass auf Position Null der CEO auf Position Eins steht, der Manager auf
‫Position auf H. R. Person, auf Position drei die Sekretärin und so weiter.
‫OK, auch wenn sie alle an der Position sein werden, also am Schlüssel ihrer Rolle.
‫Aber intern werden sie auch eine Nummer hinzufügen.
‫Der Schlüssel wird also auch intern eine Nummer sein.
‫Genau das können wir also für dieses Element bei diesem Element verwenden.
‫Und wenn Sie den Mauszeiger darüber bewegen, wird das Element am angegebenen Index in einer Reihenfolge zurückgegeben.
‫OK, ein Wörterbuch ist also eine Sequenz, also gibt es im Grunde unsere geblutete Position null, unsere Mitarbeiterposition
‫eins, Position zwei und so weiter zurück.
‫Dies wird jedoch ein Schlüssel-Wert-Paar zurückgeben.
‫OK, und das Schlüssel-Wert-Paar, das wir hier erstellen werden, wird vom Typ string und employee sein.
‫Jetzt können wir also den Schlüssel anzeigen und dann den Wert unseres Mitarbeiters an unserem Schlüssel-Wert-Paar an der Wertposition
‫abrufen.
‫Weil wir es von unserem Element bei der Arbeit bekommen.
‫Dies ist etwas komplizierter, aber im Grunde ist es nur eine andere Möglichkeit, auf ein Element
‫in Ihrem Wörterbuch zuzugreifen, indem Sie den Schlüssel nicht als Zeichenfolge, sondern als Ganzzahl verwenden.
‫Und das gilt für alle Arten von Schlüsseln.
‫Unabhängig davon, welchen Typ Sie für den Schlüssel verwendet haben, wird ihm immer auch eine Nummer zugewiesen.
‫Selbst wenn dies vom Typ object oder vom Typ double oder was auch immer war, wird ihm immer eine
‫ganze Zahl zugewiesen, was es uns ermöglicht, nur dieses Element bei I zu verwenden.
‫OK, lassen Sie uns das durchgehen und Sie werden sehen, dass wir grundsätzlich alle Mitarbeiter anzeigen können.
‫Es geht also alle Mitarbeiter in unserer Liste durch.
‫Also ich glaube, es geht bis hierher.
‫OK, es zeigt uns also alle Mitarbeiter, die wir in ihrem haben.
‫Und es fängt sogar etwas weiter oben an.
‫Dies ist im Grunde die Liste, die wir von dieser Gruppe erhalten.
‫OK, Sie können also einen Falu verwenden, um eine ganze Liste von Wörterbüchern durchzugehen.
‫Sie können natürlich auch A für jede Schleife verwenden, aber Sie können auch auf Elemente zugreifen, indem Sie
‫das Element I verwenden, und dann können Sie es speichern und dann das Employee-Objekt, da der Wert tatsächlich vom Typ Employee sein wird,
‫weil das das ist, was wir hier definieren.
‫Wenn Sie sich nun den Schlüssel ansehen, führen wir ihn erneut aus.
‫Sie können hier sehen, Key CEO, Key Manager, Key HRR, Key Sekretär, jetzt könnten wir auch das Auge drucken, wenn Sie
‫wollten.
‫Also hier.
‫So großartig.
‫Nun, eigentlich drucken wir einfach hier.
‫I ist, und dann werde ich der zweite Eintrag so sein und dann drucken wir I.
‫OK, dann sieht man direkt, welcher Integer-Wert einer bestimmten Position zugeordnet ist, also der CEO auf Position null, der
‫Manager auf Position eins, das H. R. Person ist eine Position zu und so weiter.
‫OK, alles klar.
‫Das war's also für dieses Video.
‫Ich denke, es ist ein langes Video, um Wörterbücher durchzugehen, zumindest an dieser Stelle.
‫Im nächsten Video werden wir uns also ansehen, wie wir ein vorhandenes Wörterbuch aktualisieren können, damit wir den Wert
‫eines Wörterbuchs aktualisieren und dann auch sehen, wie wir Daten aus einem Wörterbuch entfernen können.
‫Okay, bis zum nächsten.