‫En in de laatste video's hebben we het gehad over hashtabellen, dus in deze les bespreken we hoe
‫de generieke versie van hashtabellen eruitziet en hoe de generieke versie van hashtabel een woordenboek is.
‫Dus we gaan kijken hoe we woordenboeken kunnen gebruiken in deze video.
‫Dus vergelijkbaar met een hashtabel, zal een woordenboek zijn waarde opslaan en een sleutelwaardepaar zoals
‫we hadden met het woordenboek, precies waar we zeiden dat het sleutelwaardepaar voor auto auto zou zijn.
‫Oké, dus de sleutel zou auto zijn, wat het Duitse woord voor auto is, en dan wordt auto de waarde
‫die in dit woordenboek staat.
‫OK, dus dat is bijvoorbeeld een woordenboek uit de echte wereld en een woordenboek Duits Engels.
‫Maar nu gaan we het programmeerwoordenboek gebruiken.
‫Dus C sharp-woordenboeken die een sleutelwaardepaar hebben zoals we hier hebben, waar we de waarde opslaan die is toegewezen aan een
‫specifieke sleutel.
‫Oké, dus laten we doorgaan en een woordenboek definiëren.
‫Dus uit de Microsoft-documentatie wordt het woordenboek gedefinieerd als zo OK, dus het zal er ongeveer zo
‫uitzien als dit woordenboek teki te waarde.
‫Dus wat dat in feite betekent, is dat we de typen van zowel onze sleutels als waarden in de verklaring
‫moeten specificeren, vergelijkbaar met hoe we het hebben gedaan, bijvoorbeeld voor een lijst.
‫OK, dus een lijst moest ook een specifiek type hebben.
‫Een lijst kan van het type integer zijn, hij kan van het type string zijn, hij kan van het type object zijn, enzovoort.
‫Maar we moesten bepalen van welk type deze lijst moet zijn.
‫Hetzelfde geldt voor woordenboeken, maar dat zijn ze niet.
‫We moeten het zowel voor de sleutel als voor de waarde definiëren.
‫OK, dus dat is eigenlijk wat deze T. S. A. waarde betekent.
‫OK, dus dat betekent dat we veel flexibiliteit hebben, maar niet de flexibiliteit die we hadden in de
‫hashtabel.
‫Dus we kunnen in principe doorgaan en een woordenboek zoals dit hier maken, waar we zeggen dat de sleutel van het type
‫in ditcher zal zijn en de waarde van het type string.
‫En natuurlijk, om woordenboeken te gebruiken, moeten we ervoor zorgen dat we een systeem hebben dat zo
‫generiek verzamelt.
‫Dus je ziet dat een woordenboek een generieke verzameling is.
‫We zagen in een andere video dat er een verschil is tussen
‫generieke en niet-generieke collecties of hashtabellen over niet-generieke collecties en woordenboeken zijn generieke collecties.
‫Ze hebben dus alle voor- en nadelen.
‫Dus nu zal dit woordenboek een geheel getal hebben, een getal, om zo te zeggen, en een waarde die een string zal zijn, dus het
‫getal zal de sleutel zijn en de string zal de waarde zijn.
‫Nu, hier maken we dit woordenboek met de naam Mijn woordenboek, en we initialiseren
‫het nu meteen met een leeg woordenboek, we kunnen dan doorgaan en dit woordenboek gebruiken, zodat we waarden aan
‫dat woordenboek kunnen toevoegen.
‫We kunnen bijvoorbeeld ook meteen de waarden van het woordenboek definiëren.
‫Dus in dezelfde lijn, eigenlijk hier.
‫Dus we kunnen bijvoorbeeld gewoon zeggen: oké, zo gaat het woordenboek eruit zien.
‫Waar we een entertainer en een string hebben.
‫Dus we hebben degene die deze entertainer hier is, de sleutel en degene die de tekst is, zou de waarde
‫zijn.
‫Dus nu hebben we het entertainertype en dan het gesproken Engelse woord voor wat het ook is, gehele getallen.
‫OK, dus één zou één zijn, twee zouden twee zijn, drie zouden drie zijn, enzovoort.
‫Nu zijn woordenboeken natuurlijk niet beperkt tot gehele getallen en kunnen tekenreeksen veel complexere waarden gebruiken.
‫We zijn aan het opslaan.
‫Oké, laten we hier bijvoorbeeld schijfloos kijken.
‫Dus ik maak een nieuwe klas aan met de naam Werknemer.
‫Ik zet het in hetzelfde bestand.
‫Maar u kunt natuurlijk ook een apart bestand maken.
‫We hebben dus een aantal eigenschappen zoals rol, naam, leeftijd en tarief voor elke medewerker.
‫OK, en dan hebben we het salaris, dat is een float, en het geeft het tarief van acht keer, vijf keer vier
‫keer twaalf terug.
‫Oké, dus wat het tarief ook is, deze waarde is wat we gaan opslaan of krijgen als
‫salaris.
‫Dus als we het salaris zouden opvragen, berekent het direct het salaris voor ons.
‫Dus dat is acht uur keer, vijf dagen keer, vier weken keer, 12 maanden.
‫Dus zo gaat het eigenlijk het jaarsalaris berekenen, om zo te zeggen.
‫Natuurlijk maal het tarief.
‫Dus laten we nu zeggen dat we een database van werknemers hebben zoals laten we.
‫Ik neem aan dat dit onze database met werknemers wordt en trouwens, ik realiseerde me net dat
‫ik de snelheid hier miste bij het maken van de constructor.
‫Dus deze constructor gaat nu ook het tarief gebruiken en het tarief hier toewijzen en nu kunnen we onze gegevens
‫uit de database gebruiken.
‫OK, dus we hebben de database waar we de titel krijgen, we krijgen de naam, we krijgen wat het is, de
‫leeftijd super oude dame, 95 jaar oud.
‫En dan hebben we haar tarief.
‫Dus ze heeft een tarief van tweehonderd.
‫Dan hebben we de manager, Joe, die 35 is, heeft een tarief van 25, enzovoort.
‫Dus wat ik nu ga doen, is dat ik dit woordenboek hier niet ga gebruiken,
‫ik ga een apart woordenboek maken dat ik de werknemersdirectory ga noemen, en die werknemersdirectory zal in feite
‫een sleutelwaarde hebben paar string werknemer.
‫Het zal dus voor een specifieke string het hele werknemersobject opslaan.
‫En ik ga deze werknemersgids noemen.
‫OK, en de string die we gaan gebruiken, wordt de rol van de werknemer.
‫OK, dus hier ga ik dit gebruiken voor elke lus die nu door elke afzonderlijke werknemer
‫in mijn werknemersdatabase gaat.
‫Dit is dus mijn werknemersdatabase.
‫Ik doe alsof, om zo te zeggen.
‫Rechts.
‫Het gaat door elk afzonderlijk item van die werknemersdatabase en het wordt
‫toegevoegd aan mijn werknemerslijst op de positie of op de sleutel van de rol, de werknemer zelf.
‫Oké, hier zijn we dan, ervan uitgaande dat we voor elke rol maar één medewerker hebben.
‫Anders zou dit het hele systeem verpesten.
‫Dit is dus een voorbeeld van hoe we een woordenboek kunnen maken met gegevens uit een nepdatabase, wat in
‫feite gewoon een reeks werknemers zal zijn die we hier hebben gedefinieerd.
‫Dus wat nu als we de gegevens uit een woordenboek willen halen?
‫Dus we willen gegevens uit een woordenboek halen en laten we zeggen dat we gegevens willen ophalen van de werknemer die
‫de CEO is.
‫Dus dat heeft de positie van de CEO.
‫Dan kunnen we medewerker gaan.
‫Ik ga deze ene werknemer bellen en we halen hem uit de personeelsgids.
‫En hier zeggen we gewoon: oké, ik wil de CEO hebben.
‫Dus ik wil de persoon kennen en misschien ook het hele object eigenlijk van die persoon die Zevo als hun titel
‫heeft.
‫Eigenlijk zeg ik gewoon dat waar de sleutel zal zijn, de CEO voor mijn woordenboekmedewerkers de directory daar naartoe gaat.
‫Ik wil weten wie de CEO is en wil de hele werknemer in een object opslaan, zodat ik de details
‫van die werknemer kan weergeven met behulp van een console.
‫Rechts.
‫Regelverklaring zo.
‫Dus hier zeg ik dat de naam van de werknemer zal zijn, wat de naam van de werknemer zal zijn en vervolgens de rol en het salaris.
‫Dit wordt dus weergegeven.
‫OK, dus in principe krijgen we het salaris op basis van het tarief en deze
‫berekening hier, het krijgt de rol rechtstreeks en we krijgen de naam rechtstreeks van het werknemersobject zelf.
‫Dus van dit werknemersobject.
‫Oké, laten we dit nu heel snel doen en kijken wat Quinn gaat verdienen, aangezien ze fulltime
‫werkt en we kunnen zien dat ze een salaris heeft van RIANNE 84000.
‫Haar naam is Quinn, haar rol als CEO.
‫Dus het uitvoeren van deze code werkt, zoals je ziet, er is hier geen probleem, maar het probleem kan zijn dat
‫we een verkeerde waarde invoeren.
‫Dus laten we zeggen dat ik in plaats van CEO zoek naar de CTO, dus naar de technisch medewerker.
‫Dus de technisch directeur.
‫En als ik dit uitvoer, zie je dat mijn applicatie crasht.
‫Er staat dus dat CTO niet in het woordenboek aanwezig was.
‫De sleutel is dus nooit gegeven.
‫Dus om dat op te lossen, kunnen we in principe controleren of de sleutel bestaat.
‫Dus hier, wat een zeer goede manier zou zijn om dit te controleren, zou zijn om een sleutel genaamd SEO of String genaamd
‫Key te maken, die de waarde van SEO heeft.
‫En dan checken we de personeelsgids.
‫Voor die specifieke sleutel, dus hier zie je dat de sleutel een van de favoriete of favoriete opties is hier, dus
‫de sleutel bevat, en dan kunnen we hier de string doorgeven die we willen controleren als de sleutel.
‫Dus bevat het de sleutel genaamd CEO?
‫Als dit het geval is, voert u deze code dan hier uit?
‫En als dat niet het geval is, voer het dan niet uit.
‫Of je kunt natuurlijk ook gewoon zeggen dat deze sleutel niet bestaat.
‫Dus nu zou je een kleine applicatie kunnen maken waarmee je een sleutel kunt invoeren en dan zal je
‫applicatie controleren, OK, bestaat deze of niet?
‫En tussen haakjes, hier moet dit worden vervangen door een sleutel.
‫Het wordt niet meer hardcoded.
‫Nou, het is hard gecodeerd en op een ander punt, om zo te zeggen.
‫Maar dit kan iets zijn dat we krijgen van gebruikersinvoer of de gebruiker die is opgebouwd uit een gebruikersinterface of iets
‫dergelijks.
‫En dan zou de applicatie de gegevens ophalen en deze weergeven in plaats van alleen een nieuwe console-applicatie in
‫een echte gebruikersinterface.
‫En u zult later zien hoe u uw ogen kunt gebruiken of hoe u uw ogen kunt bouwen met de.
‫Dus dat is een manier om het probleem te omzeilen, een andere manier zou zijn om iets te gebruiken dat try get
‫value heet.
‫Oké, dus laat me snel een klein stukje code toevoegen en het doornemen.
‫Dus laten we zeggen dat we deze MTA-medewerker hebben, die
‫ik resultaat noem, en het is leeg omdat ik het af en toe
‫heb gezegd.
‫Dus laten we proberen de waarde te krijgen methode zal een
‫boolean retourneren, wat geweldig is, want dat is wat een if-statement graag in de voorwaarde heeft en het zal het resultaat afdrukken en de waarde in resultaat zetten.
‫Dit resultaat zal dus eigenlijk onvolledig zijn.
‫Dus probeer waarde te krijgen, zal proberen de waarde te krijgen die we hier doorgeven en als het werkte, zal het volume terugkeren.
‫Waar.
‫Dus deze instructie wordt uitgevoerd en tegelijkertijd wordt het resultaat goed in deze variabele geplaatst.
‫De uitkomst wordt dus in deze resultaatvariabele gezet.
‫Dus de waarde die we ophalen uit onze werknemersdirectory wordt opgeslagen in resultaat.
‫OK, dus dat is wat deze verklaring hier zegt.
‫En als het werkte, in feite en op zijn beurt bestaat, dan wordt deze code uitgevoerd en anders wordt deze
‫code uitgevoerd.
‫Deze sleutel bestaat dus niet.
‫Dus dat zou gewoon een andere manier zijn om hetzelfde probleem te omzeilen.
‫Dus proberen om waarde te krijgen werkt ook goed.
‫Nou, je hebt werknemer genaamd Ernest Turn 22 opgehaald en hij krijgt een salaris van duizend euro per jaar of wat
‫voor soort geld je hier ook wilt praten.
‫Oké, laten we nu een beetje dieper graven, want we kunnen ook een element krijgen met het element bij methode,
‫dus een element van ons woordenboek.
‫Dus zoals we hebben geleerd of zoals jij hebt geleerd, gaat een woordenboek hier structuur gebruiken.
‫Een woordenboek is dus een verzameling sleutelwaardeparen, een structuur die is gedefinieerd als een sleutelwaardepaar
‫dat er hier ongeveer zo uit gaat zien.
‫Dus laten we er dit jaar naar kijken.
‫Dus we hebben de sleutel en de waarde.
‫Dit is dus het sleutelwaardepaar.
‫Dus dat is wat een woordenboek bevat.
‫Dus laten we hier voor een lus naar kijken en door mij, je kunt het hier echt neerzetten.
‫Dus dit voor lus, wat het zal doen, is dat het deze methode voor het toevoegen van elementen zal gebruiken.
‫Om het te gebruiken, moeten we echter een link implementeren.
‫Dus voor nu, accepteer gewoon dat link een krachtig hulpmiddel is waarmee we op een zeer efficiënte manier met collecties kunnen
‫werken.
‫En we zullen later een extra hoofdstuk hebben waarin we specifiek naar links zullen kijken.
‫Maar laten we het voorlopig maar zo accepteren.
‫Oké, dus als je eenmaal bij de latere hoofdstukken bent, zul je er meer over leren en dan zal dit logischer
‫worden.
‫Oké, dus in ons geval.
‫En dit specifieke voorbeeld waar we ons sleutelwaardepaar hebben met de sleutel en waarde waar Teekay.
‫Is het type van onze sleutels van ons woordenboek en hetzelfde geldt voor de theewaarde, wat de waarde is van
‫ons woordenboek nu in ons geval, het is string en werknemer als we ernaar kijken.
‫OK, dus voor ons woordenboek dat we hier hebben gemaakt, is het string en werknemer.
‫Maar intern achter deze snaarsleutel zit ook een geheel getal, dus een getal, om zo te zeggen.
‫OK, dus laten we zeggen dat op positie nul de CEO-positie één is, de manager op positie ten opzichte
‫van de H. R. persoon, op positie drie, de secretaris enzovoort.
‫OK, ook al zullen ze allemaal op de positie zijn, dus in de sleutel van hun rol.
‫Maar intern zullen ze ook een nummer toevoegen.
‫Dus de sleutel zal ook intern een nummer zijn.
‫Dus dat is precies wat we kunnen gebruiken voor dit element bij dit element.
‫En als u de muisaanwijzer erop plaatst, wordt het element in een reeks geretourneerd met de opgegeven index.
‫OK, dus een woordenboek is een reeks, dus het zal in feite onze bloedige positie nul, onze
‫werknemer positie één, positie twee, enzovoort teruggeven.
‫Dit levert echter een sleutelwaardepaar op.
‫OK, en het sleutelwaardepaar dat we hier gaan maken, is een type string en werknemer.
‫Dus nu kunnen we de sleutel weergeven en dan kunnen we de waarde van onze medewerker krijgen bij ons sleutelwaardepaar op
‫de waardepositie.
‫Omdat we het uit ons element op het werk halen.
‫Dit is een beetje ingewikkelder, maar in feite is het gewoon een andere manier om toegang te krijgen tot een item
‫in je woordenboek, niet door de sleutel als een tekenreeks te gebruiken, maar de sleutel als een geheel getal.
‫En dit geldt voor alle verschillende soorten sleutels.
‫Dus welk type je ook voor de sleutel hebt gebruikt, er wordt altijd een nummer aan toegekend.
‫Dus zelfs als dit van het type object was of van het type double of wat dan ook, er wordt
‫altijd een geheel getal aan toegewezen, waardoor we alleen dit element bij I kunnen gebruiken.
‫OK, dus laten we dit doornemen en u zult zien dat het ons in principe in staat zal stellen om alle werknemers weer te geven.
‫Het gaat dus door alle medewerkers in onze lijst.
‫Dus ik geloof dat het helemaal tot hier gaat.
‫OK, dus het toont ons alle medewerkers die we in hun hebben.
‫En het begint zelfs wat verder omhoog.
‫Dit is dus eigenlijk de lijst die we van deze groep krijgen.
‫Oké, dus je kunt een Falu gebruiken om door een hele lijst met woordenboeken te bladeren.
‫Je kunt natuurlijk ook A voor elke lus gebruiken, maar je hebt ook toegang tot items met element
‫dat I en dan kun je het opslaan en vervolgens het medewerkerobject omdat de waarde in feite van het type werknemer zal
‫zijn, want dat is wat we hier definiëren.
‫Als u nu naar de sleutel kijkt, laten we hem dan opnieuw uitvoeren.
‫U kunt hier zien, sleutel-CEO, sleutelmanager, sleutel HRR, sleutelsecretaris, nu kunnen we ook het oog afdrukken als u dat zou
‫willen.
‫Dus hier.
‫Zo groots.
‫Nou, eigenlijk, laten we gewoon hier afdrukken.
‫Ik ben, en dan zal ik het tweede item zijn zoals zo en dan printen we I.
‫OK, dan kun je dus direct zien welk geheel getal aan een bepaalde functie is toegekend, dus de CEO staat op positie nul,
‫de manager op positie één, de H. R. persoon is een positie, enzovoort.
‫Ja is goed.
‫Dus dat was het voor deze video.
‫Ik denk dat het een video is die lang genoeg is om woordenboeken door te nemen, tenminste op dit punt.
‫Dus in de volgende video gaan we kijken hoe we een bestaand woordenboek kunnen bijwerken, zodat we de waarde van
‫een woordenboek kunnen bijwerken en dan ook kijken hoe we gegevens uit een woordenboek kunnen verwijderen.
‫Oké, dus tot de volgende.