‫Et cette leçon, nous allons couvrir les tables de hachage et nous allons également examiner les dictionnaires plus tard.
‫Les tables de hachage et les dictionnaires font donc partie des collections les plus utiles de C Sharp.
‫Nous allons donc voir comment les définir et comment les utiliser, et dans quel cas scénario nous devons en
‫profiter pour comprendre le concept de hachage et de tables.
‫Tout d'abord, pensez à un vrai dictionnaire.
‫Supposons donc que nous ayons un dictionnaire allemand et anglais où chaque mot en allemand correspond à un seul
‫mot en anglais, car ce serait la limitation ici.
‫Ainsi, lorsque nous essayons de traduire le mot auto, qui en allemand se traduit essentiellement par voiture en
‫anglais, nous utilisons un mot comme mot clé que nous pouvons rechercher, par exemple, et nous avons obtenu une traduction en
‫conséquence.
‫Il y a donc toujours cette relation un à un.
‫Nous avons donc auto et cela se traduit en voiture.
‫Et nous pouvons y parvenir exactement, en utilisant également des tables de hachage et nous allons l'utiliser dans un exemple très spécifique
‫ici.
‫Supposons donc que nous ayons un système d'inscription des étudiants où chaque étudiant a une pièce d'identité et de nombreuses autres données,
‫telles que le nom, l'âge, les notes et la photo, etc.
‫Pour qu'un tel système fonctionne, nous aurons besoin d'une pièce d'identité spéciale pour chaque étudiant.
‫Il doit donc être unique.
‫Si nous devions stocker ces données à l'aide d'une table de hachage ou d'un dictionnaire, l'ID de l'étudiant serait la
‫clé et les données de l'étudiant seraient un objet qui contient toutes les autres informations de l'étudiant et ce serait la
‫valeur.
‫Nous avons donc toujours cette paire clé-valeur.
‫OK, c'est ainsi que vous pouvez trouver les données réelles, pour ainsi dire, et c'est la valeur qui se cache derrière.
‫Vous pouvez donc le voir comme un casier.
‫C'est donc l'idée du casier ou l'emplacement du casier.
‫Il peut s'agir de différents types de données.
‫Il n'est pas nécessaire que ce soit un ID et ce sera la valeur.
‫Donc le dictionnaire, ils doivent être du même type dans une table de hachage.
‫Ils peuvent être de différents types.
‫Cela pourrait donc être un entier et cela pourrait être un objet, par exemple.
‫Nous allons donc d'abord examiner les tables de hachage.
‫Par conséquent, nous allons créer une nouvelle classe ou en fait j'ai préparé une nouvelle classe pour cela.
‫Posons-le ici.
‫Et il a quelques propriétés.
‫Il a une propriété ID, une propriété name et le GPA.
‫Et puis nous avons un constructeur très simple attribuant simplement la valeur.
‫Ainsi, quel que soit l'ID que nous passons à l'objet étudiant lorsque nous le créons, ce sera l'ID de cet objet étudiant et ainsi
‫de suite.
‫OK, donc rien d'extraordinaire ici.
‫Nous utilisons simplement une classe normale comme nous l'avons vu dans le chapitre sur la classe.
‫Maintenant, nous pourrions, bien sûr, créer cette classe dans un fichier séparé afin de
‫pouvoir continuer et ouvrir notre explorateur de solutions.
‫Allez-y et créez un nouveau fichier ici.
‫Ajoutez donc un nouvel élément ou une nouvelle classe comme un étudiant ou un étudiant.
‫Mais pour cet exemple, je vais rester simple et le mettre dans un seul fichier.
‫Comme vous le savez, il est préférable de le mettre dans un fichier séparé afin de ne pas mélanger les choses
‫et de pouvoir trouver plus facilement des fichiers et des classes, etc.
‫OK, maintenant que nous avons notre classe d'étudiants, nous pouvons continuer et créer une table de hachage.
‫OK, donc à l'intérieur de notre programme ici, dans la méthode principale, c'est là que
‫je vais définir une nouvelle table de hachage et ce sera comme, donc table de hachage et je vais appeler cette table, qui sera
‫nouvelle table de hachage.
‫La classe de table de hachage est à l'intérieur des collections système, nous devons donc ajouter cet espace de noms ici en utilisant le
‫système de ces collections, donc la table de hachage et c'est différent de l'espace de noms des tables de hachage car c'est
‫ainsi que j'ai appelé mon ce qui pourrait confondre notre idée ici si nous voulons pour entrer dans la table de hachage sans avoir cet
‫espace de noms ajouté à notre projet.
‫Mais maintenant que nous l'avons dans notre classe de programmes, nous pouvons l'utiliser.
‫Nous avons donc cette nouvelle table de hachage, qui sera désormais une table de données et nous pouvons y mettre les données que nous
‫voulons.
‫Voici donc comment vous pouvez créer une telle table de hachage, comment vous pouvez l'initialiser avec un objet table de hachage comme nous
‫l'avons fait ici.
‫Alors maintenant, ce que nous pouvons faire, c'est affecter des valeurs à cette table de hachage et nous pourrions même l'appeler table des
‫étudiants pour rendre notre code un peu plus lisible.
‫Alors maintenant, nous devons juste créer un groupe d'étudiants que nous voulons avoir dans notre table.
‫Alors permettez-moi de les ajouter ici aussi.
‫Je vais les appeler Studd un départ deux à trois à quatre, et ils seront tous de nouveaux objets étudiants.
‫Donc ici, ce sera l'étudiant avec l'ID.
‫L'une sera Maria Chiasm GPA de 98.
‫Et nous avons Jason, qui en aura l'idée.
‫C'est cette idée, l'identifiant unique, pour ainsi dire, et puis le GPA que les étudiants ont.
‫OK, maintenant nous avons tous ces étudiants et nous pouvons les affecter à notre table des étudiants en utilisant l'ID de
‫l'étudiant.
‫Et la bonne pratique serait d'aller de l'avant et de rester à la table des étudiants qui ajoutent.
‫Et ici, nous avions l'habitude d'en voler un I. RÉ. Donc celui-ci ici, la propriété comme clé.
‫Vous pouvez donc voir ici qu'une table de hachage nous permet d'avoir un objet de type clé hors de type afin qu'il puisse
‫s'agir de n'importe quel type d'objet en tant que clé et cela peut être un objet facultatif ou nullable a la valeur afin que nous puissions attribuer
‫une valeur qui peut être null , mais nous allons attribuer une valeur et ce sera l'étudiant lui-même comme ça.
‫OK, alors maintenant nous avons ajouté notre étudiant à notre table des étudiants et nous pouvons faire la même chose avec les autres
‫étudiants et nous allons utiliser leur identifiant pour chacun d'eux.
‫Utilisons donc le tableau des étudiants ici pour tous les.
‫OK, c'est donc notre table de hachage maintenant.
‫Mais comment récupérer les entrées, alors comment récupérer les entrées de notre table de hachage ?
‫Eh bien, regardons différentes manières pour cela.
‫Donc, la première chose que nous pouvons faire est de simplement créer un objet étudiant ici.
‫Donc étudiant et cet objet seront appelés étudiant stocké.
‫OK, je vais donc récupérer la valeur de l'élève dans ma table.
‫Donc dans ce cas, c'est la table des étudiants.
‫Les élèves tablent comme ça.
‫Et ici, de la même manière que je m'exerce dans un tableau, comment X est une valeur dans un tableau, je peux y accéder par
‫un ID.
‫Alors ici, par exemple, disons que je veux obtenir celui d'Idy comme ça.
‫Donc ici le problème est que cette table de hachage peut avoir des valeurs qui sont de type object.
‫Exact, comme nous l'avons vu plus tôt.
‫Donc ici, si nous allons de l'avant et appelons la méthode ADD, vous pouvez voir que nous pouvons affecter une clé, mais alors la valeur
‫sera de type object.
‫Et cela signifie que celui-ci sera ici de type objet.
‫Mais nous ne pouvons pas affecter simplement un type d'objet à l'étudiant.
‫Il doit être de type étudiant car cet étudiant est en fait de type étudiant.
‫OK, nous devons donc nous assurer que nous le transposons dans un élève ici et cela fonctionnera.
‫D'accord, nous lançons donc cet objet dans un élève parce que nous le savons à l'intérieur de la table de l'élève à
‫la première position.
‫Donc à l'ID, la valeur sera en fait de type étudiant.
‫OK, donc ici, vous pouvez obtenir l'étudiant à un, vous pouvez également obtenir la carte d'étudiant et ainsi de suite.
‫Mais cela ne fonctionne que parce que nous savons que nous utilisons en fait ces chiffres.
‫Donc, si vous voulez l'obtenir, sinon vous pouvez utiliser un stand by ID.
‫Cela vous donnera donc maintenant la valeur derrière l'ID étudiant.
‫Donc, cela vous donnera essentiellement cette valeur.
‫Voici l'étudiant ici.
‫Et c'est celui-ci pour être précis, donc celui-ci ici, parce que c'est ce que nous stockons à celui-ci.
‫Alors maintenant, nous pouvons aller de l'avant et faire quelque chose comme ça où nous allons maintenant, au lieu de Friday Hello World, écrire quelque chose
‫d'utile, où nous écrivons l'étudiant I. RÉ. , le nom de l'étudiant, ainsi que
‫sa moyenne cumulative.
‫Nous allons donc utiliser l'identifiant d'étudiant.
‫Donc, nous obtenons sa carte d'identité, nous obtenons son nom et nous obtenons son GPA et dans ce cas, son GPA et ainsi de suite,
‫car c'est Marea à la position un que je veux.
‫OK, alors exécutons ceci et vous pouvez voir les identifiants des étudiants.
‫Un nom est Maria Antipas, 98 ans.
‫Nous avons donc vu ici comment créer une table de hachage.
‫C'est ainsi que nous pouvons stocker des données, puis une table de hachage.
‫En fait, c'est là que nous stockons les données et une table de hachage.
‫Et puis voici comment nous pouvons récupérer les données d'une table de hachage.
‫Supposons maintenant que nous voulons réellement imprimer toutes les données à l'intérieur de notre table de hachage et que nous n'avons
‫pas de clé particulière à notre disposition.
‫Nous pouvons simplement le faire en obtenant toutes les clés de notre table de hachage pour résoudre ce problème.
‫Tout d'abord, nous devons discuter d'une structure appelée entrée de dictionnaire chaque fois que nous ajoutons une nouvelle entrée à notre table de
‫hachage.
‫Ainsi, notre paire clé-valeur et notre nouvel objet d'entrée de dictionnaire seront créés pour nous et seront insérés dans notre
‫table de hachage, ce qui signifie qu'une table de hachage est essentiellement une collection d'entrées de dictionnaire.
‫Ainsi, en utilisant un objet temporaire d'entrée de dictionnaire, nous pouvons parcourir notre table de hachage à l'aide d'un pour chaque boucle.
‫Voyons donc cela dans cet exemple particulier ici où je vais aller de l'avant et l'utiliser pour chaque boucle
‫ici.
‫Et ceci pour chaque type de boucle sera l'entrée du dictionnaire.
‫C'est la structure dont je parlais.
‫Vous pouvez voir ici l'entrée du dictionnaire struct.
‫Alors, quel est le nom de l'article que je vais utiliser ?
‫Je vais utiliser l'entrée.
‫Bien sûr, vous pouvez appeler l'étudiant ou autre, car vous savez que les entrées seront de type
‫étudiant.
‫Mais disons que vous ne le savez pas.
‫Vous pouvez également l'appeler entrée.
‫Et puis quelle est la collection que nous voulons parcourir ou dont nous voulons obtenir les valeurs ?
‫Et ce sera notre table d'étudiants.
‫Donc celui-ci récupère.
‫Article individuel avec ID connu.
‫Et ici.
‫Récupérer toutes les valeurs d'une table de hachage.
‫OK, donc une entrée à l'intérieur de notre table de hachage est de type entrée de dictionnaire, comme je viens de le dire.
‫Cela nous permet donc maintenant de passer par là.
‫Tablez la table des étudiants et affichez essentiellement les valeurs ici, car l'entrée, la valeur renverra un objet que vous pouvez voir ici, il
‫est écrit objet, mais ce que nous voulons pour obtenir les détails de l'étudiant sera
‫un objet étudiant.
‫Ce que nous devrons faire, c'est que nous devrons faire ce qui suit afin de créer une valeur temporaire, qui
‫sera notre valeur d'entrée.
‫Maintenant, nous avons le même problème que nous avons eu ici, OK, où nous devons transposer cela dans un étudiant parce que ce n'est
‫qu'un objet.
‫Droit.
‫Mais nous voulons qu'il soit de type étudiants afin que nous puissions accéder aux propriétés étudiantes.
‫Donc, parce que sinon, la valeur d'entrée pensait qu'elle ne l'avait pas ici.
‫Je ne peux pas accéder à son identifiant, je ne peux pas accéder à son nom, à tous ces trucs, même s'il existe là-dedans.
‫Mais notre ID ne le permet tout simplement pas, car nous devons d'abord nous assurer de convertir ou de convertir la valeur
‫dans le bon type, qui sera notre type student.
‫Alors maintenant, nous le lançons.
‫Nous le stockons temporairement et maintenant nous pouvons continuer et écrire les valeurs individuelles sur notre console, par exemple, ou les
‫utiliser dans notre programme comme bon nous semble.
‫Donc, ici, nous pouvons utiliser l'identifiant étudiant en utilisant l'identifiant temporaire car temp maintenant est de type étudiant et l'étudiant
‫a un identifiant, le nom GPA et nous pouvons accéder à tous ceux-ci pour parcourir la liste complète de tous nos étudiants.
‫Alors faisons-le très vite.
‫Exécutons notre code et voyons ce que cela fait pour chaque groupe pour nous.
‫Donc vous pouvez voir que ça passe par là.
‫Il est écrit étudiant pour Steve.
‫Étudiant trois Sclera.
‫L'étudiant deux est Jason et l'autre est Maria.
‫Donc, comme il va de retour au puits, il commence à la toute dernière entrée et remonte à la première entrée.
‫Maintenant, c'est si à ce stade nous ne savons pas s'il s'agit d'un étudiant, même si nous
‫le convertissons déjà en étudiant, c'est juste pour vous montrer qu'une table de hachage n'est en réalité qu'une collection d'entrées
‫de dictionnaire.
‫Voyons donc comment nous pouvons simplifier cela pour chaque groupe.
‫Nous pouvons simplifier en disant en fait pour chaque mot un type de variable va être un étudiant.
‫Le nom de l'élément.
‫Eh bien, vous pourriez l'appeler étudiant.
‫Je vais juste l'appeler valeur comme.
‫Alors c'est bien.
‫Et la collection que je veux parcourir va être prise pendant que les élèves tablent des valeurs de points.
‫Il y a donc cette collection I de valeurs de table de hachage, elle obtient donc une collection oculaire contenant les valeurs de la
‫table de hachage.
‫Cela nous permet donc de parcourir les valeurs directement sans avoir à le faire.
‫Fondamentalement, faites ce que nous avons fait ici, où nous l'avons converti ou où nous l'avons converti en objet étudiant.
‫Alors maintenant, nous pouvons simplement aller de l'avant et.
‫Faites la même chose que nous avons fait ici, mais maintenant, bien sûr, cela va valoir la peine que je. RÉ. et ainsi de suite, parce que ce n'est
‫pas une entrée et ce n'est pas 10, mais ça va être, en fait, de la valeur, OK, parce que c'est ce
‫que c'est pour chaque nouveau.
‫Nous donne pour chaque itération de celui-ci, où il passe en revue toutes les valeurs que nous avons
‫et les valeurs vont être la valeur individuelle que nous examinons actuellement pour cette itération particulière.
‫Donc, dans la première itération, ce sera le cas.
‫Steve, alors ce sera minutieux puis Jason et Maria.
‫OK, donc si nous nous débarrassons de cette ligne ici ou de ceci pour chaque boucle et que nous la réexécutons, nous verrons que nous
‫obtenons les mêmes résultats.
‫Alors, Steve, Chloro Jason et Maria.
‫OK, c'était donc une introduction rapide aux tables de hachage et la prochaine vidéo, je vais vous
‫lancer un petit défi où vous étendrez un peu votre code pour comprendre un peu mieux les tables de hachage.
‫Et puis nous allons regarder les dictionnaires.