‫E negli ultimi video abbiamo parlato di tabelle hash, quindi in questa lezione discuteremo di come appare
‫la versione generica delle tabelle hash e la versione generica della tabella hash è il dizionario.
‫Quindi vedremo come usare i dizionari in questo video.
‫Così simile a una tabella hash, un dizionario memorizzerà il suo valore e una coppia di valori
‫chiave come avevamo con il dizionario, proprio dove abbiamo detto che la coppia di valori chiave per auto sarebbe car.
‫OK, quindi la chiave sarebbe auto, che è la parola tedesca per auto, e quindi auto sarà il valore che si
‫trova all'interno di questo dizionario.
‫OK, questo è un dizionario del mondo reale e un dizionario inglese tedesco, per esempio.
‫Ma ora useremo il dizionario di programmazione.
‫Quindi dizionari C sharp che hanno una coppia di valori chiave come abbiamo qui dove memorizziamo il valore assegnato a una
‫chiave specifica.
‫OK, allora andiamo avanti e definiamo un dizionario.
‫Quindi dalla documentazione Microsoft, il dizionario è definito così OK, quindi assomiglierà a questo
‫valore di teki te del dizionario.
‫Quindi ciò che fondamentalmente significa è che dobbiamo specificare i tipi di entrambe le nostre chiavi e valori nella dichiarazione
‫in modo simile a come l'abbiamo fatto, ad esempio, per un elenco.
‫OK, quindi anche un elenco doveva avere un tipo specifico.
‫Una lista potrebbe essere di tipo intero, potrebbe essere di tipo stringa, potrebbe essere di tipo oggetto e così via.
‫Ma dovevamo definire di che tipo dovesse essere questa lista.
‫Lo stesso vale per il dizionario, ma non lo sono.
‫Dobbiamo definirlo sia per la chiave che per il valore.
‫OK, quindi questo è fondamentalmente ciò che questo T. S. UN. valore significa.
‫OK, questo significa che abbiamo molta flessibilità, ma non la flessibilità che avevamo nella tabella
‫hash.
‫Quindi in pratica possiamo andare avanti e creare un dizionario come questo qui dove diciamo che la chiave sarà di
‫tipo in ditcher e il valore sarà di tipo stringa.
‫E, naturalmente, per utilizzare i dizionari, dobbiamo assicurarci di utilizzare il sistema che raccoglie
‫quelle generiche.
‫Quindi vedete che un dizionario è una raccolta generica.
‫Abbiamo visto in un altro video che c'è una differenza tra raccolte generiche
‫e non generiche o tabelle hash su raccolte non generiche e dizionari sono raccolte generiche.
‫Quindi hanno tutti i vantaggi e gli svantaggi.
‫Quindi ora questo dizionario avrà un intero, un numero, per così dire, e un valore che sarà una stringa, quindi il
‫numero sarà la chiave e la stringa sarà il valore.
‫Ora, qui stiamo creando questo dizionario chiamato My Dictionary, e lo stiamo inizializzando con
‫un dizionario vuoto subito a questo punto, possiamo quindi andare avanti e usare questo dizionario in modo da poter aggiungere
‫valori a quel dizionario.
‫Possiamo, ad esempio, anche definire subito i valori del dizionario.
‫Quindi nella stessa linea, fondamentalmente proprio qui.
‫Quindi potremmo, per esempio, dire semplicemente, OK, questo sarà l'aspetto che avrà il dizionario.
‫Dove abbiamo un intrattenitore e una corda.
‫Quindi abbiamo quello che è questo intrattenitore qui, la chiave e quello che è il testo perché sarebbe il
‫valore.
‫Quindi ora abbiamo il tipo di intrattenitore e poi la parola inglese parlata per qualunque cosa sia, interi.
‫OK, quindi uno sarebbe uno, due sarebbero due, tre sarebbero tre e così via.
‫Ora, ovviamente, i dizionari non si limitano agli interi e le stringhe possono utilizzare valori molto più complessi.
‫Stiamo immagazzinando.
‫OK, quindi, ad esempio, consideriamo senza disco qui.
‫Quindi sto creando una nuova classe chiamata Impiegato.
‫Lo metto nello stesso file.
‫Ma ovviamente potresti creare un file separato.
‫Quindi abbiamo alcune proprietà come ruolo, nome, età e tariffa per ogni singolo dipendente.
‫OK, e poi abbiamo lo stipendio, che è un float, e restituisce il tasso di otto volte, cinque volte
‫quattro volte dodici.
‫OK, quindi qualunque sia il tasso di volte, questo valore sarà quello che immagazzineremo o otterremo come
‫stipendio.
‫Quindi, se dovessimo recuperare lo stipendio, calcolerà direttamente lo stipendio per noi.
‫Quindi sono otto ore, cinque giorni, quattro settimane, 12 mesi.
‫Quindi è così che calcolerà fondamentalmente lo stipendio annuo, per così dire.
‫Naturalmente, volte il tasso.
‫Quindi ora diciamo che abbiamo un database di dipendenti come Let's.
‫Presumo che questo sarà il nostro database di dipendenti e, a proposito, mi sono appena reso conto
‫che ho perso il tasso qui durante la creazione del costruttore.
‫Quindi questo costruttore utilizzerà anche la velocità ora e assegnerà la velocità qui e ora possiamo usare i
‫nostri dati dal database.
‫OK, quindi abbiamo il database in cui otteniamo il titolo, otteniamo il nome, otteniamo che cos'è,
‫l'età super anziana, 95 anni.
‫E poi abbiamo la sua tariffa.
‫Quindi ha un tasso di duecento.
‫Poi abbiamo il manager, Joe, che ha 35 anni, ha un tasso di 25 e così via.
‫Quindi ora quello che farò è che non userò questo dizionario qui, creerò un
‫dizionario separato che chiamerò directory dei dipendenti, e quella directory dei dipendenti avrà fondamentalmente un valore
‫chiave coppia di stringa dipendente.
‫Quindi memorizzerà per una stringa specifica l'intero oggetto dipendente.
‫E chiamerò questa directory dei dipendenti.
‫OK, e la stringa che useremo sarà il ruolo dei dipendenti.
‫OK, quindi qui lo userò per ogni ciclo che ora passerà attraverso ogni singolo dipendente nel
‫database dei miei dipendenti.
‫Quindi questo è il database dei miei dipendenti.
‫Sto fingendo, per così dire.
‫Destra.
‫Esaminerà ogni singolo elemento del database di quel dipendente e verrà
‫aggiunto alla directory dei miei dipendenti nella posizione o nella chiave del ruolo, il dipendente stesso.
‫OK, quindi eccoci qui, supponendo che per ogni singolo ruolo abbiamo un solo dipendente.
‫Altrimenti questo rovinerebbe l'intero sistema.
‫Quindi questo è un esempio di come possiamo creare un dizionario con i dati da un falso database, che
‫fondamentalmente sarà solo una serie di dipendenti che abbiamo definito qui.
‫Quindi ora cosa succede se volessimo ottenere i dati da un dizionario?
‫Quindi vogliamo recuperare i dati da un dizionario e diciamo di voler recuperare i dati del dipendente che
‫è il CEO.
‫Quindi questa è la posizione del CEO.
‫Allora possiamo diventare dipendenti.
‫Chiamerò questo dipendente e lo otterremo dall'elenco dei dipendenti.
‫E qui diciamo solo, OK, voglio avere l'amministratore delegato.
‫Quindi voglio conoscere la persona e forse anche l'intero oggetto in realtà di quella persona che ha Zevo come
‫titolo.
‫Fondamentalmente solo dicendo che dove la chiave sarà CEO per i miei dipendenti del dizionario portare la directory lì.
‫Voglio sapere chi è l'amministratore delegato e voglio memorizzare l'intero dipendente in un oggetto in modo da poter
‫visualizzare i dettagli di quel dipendente utilizzando una console.
‫Destra.
‫Dichiarazione di linea in questo modo.
‫Quindi qui dico che il nome del dipendente sarà, che sarà il nome del dipendente, quindi il ruolo e lo stipendio.
‫Quindi questo verrà visualizzato.
‫OK, quindi fondamentalmente otterremo lo stipendio in base alla tariffa e questo
‫calcolo qui, otterrà direttamente il ruolo e otterremo il nome direttamente dall'oggetto dipendente stesso.
‫Quindi da questo oggetto dipendente.
‫Ok, ora andiamo molto velocemente e vediamo cosa guadagnerà Quinn, considerando che lavora a tempo
‫pieno e possiamo vedere che ha uno stipendio di RIANE 84000.
‫Il suo nome è Quinn, il suo ruolo di CEO.
‫Quindi l'esecuzione di questo codice funziona, come vedi, non ci sono problemi qui, ma il problema potrebbe essere che
‫stiamo inserendo un valore sbagliato.
‫Quindi diciamo che invece del CEO, sto cercando il CTO, quindi l'ufficiale tecnico.
‫Quindi il direttore tecnico.
‫E se eseguo questo, vedi che la mia applicazione si blocca.
‫Quindi dice che CTO non era presente nel dizionario.
‫Quindi la chiave non è mai stata data.
‫Quindi, per risolvere il problema, possiamo sostanzialmente verificare se la chiave esiste.
‫Quindi qui, un ottimo modo per verificarlo sarebbe creare una chiave chiamata SEO o una stringa chiamata Key,
‫che ha il valore di SEO.
‫E poi controlliamo la directory dei dipendenti.
‫Per quella particolare chiave, quindi qui vedi contiene la chiave è una delle opzioni preferite o preferite qui, quindi
‫contiene la chiave, e quindi qui possiamo passare la stringa che vogliamo controllare come chiave.
‫Quindi contiene la chiave chiamata CEO?
‫Se lo fa, allora esegui questo codice qui?
‫E se non lo fa, non eseguirlo.
‫Oppure potresti, ovviamente, anche solo dire che questa chiave non esiste.
‫Quindi ora potresti creare una piccola applicazione che ti permetterà di inserire una chiave e poi la
‫tua applicazione controllerà, OK, esiste o no?
‫E a proposito, qui, questo dovrebbe essere sostituito con la chiave.
‫Non sarà più codificato.
‫Bene, è codificato e in un altro punto, per così dire.
‫Ma questo potrebbe essere qualcosa che otteniamo dall'input dell'utente o dall'utente costruito da un'interfaccia utente o qualcosa del
‫genere.
‫E quindi l'applicazione recupererebbe i dati e li visualizzerà invece di una nuova applicazione console in
‫un'interfaccia utente effettiva.
‫E vedrai in seguito come usare i tuoi occhi o come costruire i tuoi occhi usando il.
‫Quindi questo è un modo per aggirare il problema, un altro modo sarebbe usare qualcosa chiamato try get
‫value.
‫OK, quindi lasciami aggiungere rapidamente un po' di codice e analizzarlo.
‫Quindi diciamo che abbiamo questo dipendente MTA, che chiamo risultato, ed è vuoto perché l'ho detto a
‫volte e poi sto controllando la directory dei dipendenti se ha il valore chiamato inturn e sto usando questo metodo prova
‫a ottenere valore.
‫Quindi proviamo a ottenere un valore che il metodo restituirà
‫un booleano, il che è fantastico perché è quello che piace avere un'istruzione if nella condizione e stamperà il risultato e inserirà il valore in risultato.
‫Quindi questo risultato sarà effettivamente incompleto.
‫Quindi prova a ottenere valore, proverà a ottenere il valore che passiamo qui e se ha funzionato, il volume tornerà.
‫Vero.
‫Quindi questa istruzione verrà eseguita e allo stesso tempo inserirà bene il risultato in questa variabile.
‫Quindi il risultato verrà inserito in questa variabile di risultato.
‫Quindi il valore che recuperiamo dalla nostra directory dei dipendenti verrà memorizzato nel risultato.
‫OK, questo è ciò che dice questa affermazione qui.
‫E se ha funzionato, in effetti ea sua volta esiste, allora questo codice verrà eseguito e altrimenti verrà eseguito
‫questo codice.
‫Quindi questa chiave non esiste.
‫Quindi questo sarebbe solo un altro modo per aggirare lo stesso problema.
‫Quindi anche cercare di ottenere valore funziona bene.
‫Bene, hai recuperato un dipendente di nome Ernest Turn 22 e lui riceve uno stipendio di migliaia di euro all'anno o
‫qualsiasi tipo di denaro di cui vuoi parlare qui.
‫OK, ora scaviamo un po' più a fondo, perché possiamo anche ottenere un elemento con il metodo element at,
‫quindi un elemento del nostro dizionario.
‫Quindi, come abbiamo imparato o come hai imparato tu, un dizionario utilizzerà la struttura qui.
‫Quindi un dizionario è una raccolta di coppie chiave-valore, che è una struttura definita come una
‫coppia chiave-valore che assomiglierà a qualcosa del genere qui.
‫Quindi diamo un'occhiata quest'anno.
‫Quindi abbiamo la chiave e il valore.
‫Quindi questa è la coppia chiave-valore.
‫Ecco cosa contiene un dizionario.
‫Quindi diamo un'occhiata a questo per un ciclo qui e da me, puoi effettivamente metterlo qui.
‫Quindi questo ciclo for, ciò che farà è che utilizzerà questo metodo di aggiunta dell'elemento.
‫Tuttavia, per utilizzarlo, sarà necessario implementare un collegamento.
‫Quindi, per ora, accetta che il collegamento sia uno strumento potente che ci consente di lavorare con le raccolte in modo molto
‫efficiente.
‫E avremo un capitolo extra più avanti in cui esamineremo specificamente i collegamenti.
‫Ma per ora, accettiamola così.
‫OK, quindi una volta arrivati ai capitoli successivi, ne imparerai di più e poi questo avrà più
‫senso.
‫OK, quindi nel nostro caso.
‫E questo esempio particolare in cui abbiamo la nostra coppia di valori chiave con la chiave e il valore in cui Teekay.
‫È il tipo delle nostre chiavi del nostro dizionario e lo stesso vale per il valore del tè, che è il
‫valore del nostro dizionario ora nel nostro caso, è stringa e impiegato se lo guardiamo.
‫OK, quindi per il nostro dizionario che abbiamo creato qui, è stringa e impiegato.
‫Ma internamente dietro questa chiave di stringa, c'è anche un valore intero, quindi un numero, per così dire.
‫OK, quindi diciamo che alla posizione zero ci sarà la posizione CEO uno, il manager alla
‫posizione H. R. persona, alla terza posizione, il segretario e così via.
‫OK, anche se saranno tutti nella posizione quindi nella chiave del loro ruolo.
‫Ma internamente verranno anche aggiunti un numero.
‫Quindi la chiave sarà anche un numero internamente.
‫Quindi è esattamente quello che possiamo usare per questo elemento in questo elemento.
‫E se passi con il mouse sopra, restituisce l'elemento all'indice specificato in una sequenza.
‫OK, quindi un dizionario è una sequenza, quindi fondamentalmente restituirà la nostra posizione emorragica zero, la nostra posizione di
‫dipendente uno, la posizione due e così via.
‫Tuttavia, questo restituirà una coppia chiave-valore.
‫OK, e la coppia chiave-valore che creeremo qui sarà una stringa di tipo e un impiegato.
‫Quindi ora possiamo visualizzare la chiave e quindi possiamo ottenere il valore del nostro dipendente nella nostra coppia di valori chiave nella posizione
‫del valore.
‫Perché lo otteniamo dal nostro elemento al lavoro.
‫Questo è un po' più complicato, ma fondamentalmente è solo un altro modo per accedere a un elemento
‫all'interno del tuo dizionario, non usando la chiave come stringa, ma la chiave come numero intero.
‫E questo vale per tutti i diversi tipi di chiavi.
‫Quindi, indipendentemente dal tipo che hai usato per la chiave, c'è sempre un numero assegnato anche ad essa.
‫Quindi, anche se questo fosse di tipo oggetto o se fosse di tipo double o altro, c'è sempre
‫un intero assegnato ad esso, che ci consente solo questo elemento in I.
‫OK, quindi esaminiamo questo e vedrai che fondamentalmente ci consentirà di visualizzare tutti i dipendenti.
‫Quindi passa attraverso tutti i dipendenti nella nostra lista.
‫Quindi credo che arrivi fino a qui.
‫OK, quindi ci mostra tutti i dipendenti che abbiamo nel loro.
‫E inizia anche un po' più in alto.
‫Quindi questo è fondamentalmente l'elenco che stiamo ricevendo da questo gruppo.
‫OK, quindi puoi usare un Falu per consultare un intero elenco di dizionari.
‫Ovviamente puoi anche usare A per ogni ciclo, ma puoi anche accedere agli elementi usando
‫l'elemento I e quindi puoi memorizzarlo e quindi l'oggetto dipendente perché il valore sarà in effetti di tipo impiegato
‫perché è quello che noi definire qui.
‫Ora, se guardi la chiave, eseguiamola di nuovo.
‫Puoi vedere qui, CEO chiave, manager chiave, HRR chiave, segretario chiave, ora, potremmo anche stampare l'occhio se lo
‫desideri.
‫Ecco.
‫Tipo, così grandioso.
‫Beh, in realtà, stampiamo qui.
‫Lo sono, e poi sarò la seconda voce in questo modo e poi stampiamo I.
‫OK, allora puoi vedere direttamente quale valore intero è assegnato a una posizione specifica, quindi il CEO è di posizione zero,
‫il manager è alla posizione uno, l'H. R. la persona è una posizione per e così via.
‫Ok tutto bene.
‫Quindi questo è tutto per questo video.
‫Penso che sia un video abbastanza lungo per esaminare i dizionari, almeno a questo punto.
‫Quindi, nel prossimo video, vedremo come possiamo aggiornare un dizionario esistente in modo da poter aggiornare il valore di
‫un dizionario e poi vedere anche come possiamo rimuovere i dati da un dizionario.
‫Ok, allora ci vediamo alla prossima.