c list dictionary tutorial with code examples
Denne vejledning forklarer C # -liste og ordbog med eksempler. Du vil lære at initialisere, udfylde og få adgang til elementer i C # ordbog og liste:
I vores tidligere tutorial om C # -samlinger lærte vi om hvilke typer samlinger der findes i C # som ArrayList, Hashtable, Stack, SortedList osv. Det, der er almindeligt blandt disse samlingstyper, er at de kan gemme enhver type dataelement.
Dette synes ret nyttigt til lagring af forskellige datatyper i en enkelt indsamlingsenhed, men ulempen er, at mens der hentes data fra samlingen, kræves datakastning til en relevant datatype. Uden datacast kaster programmet en undtagelse fra runtime og kan hæmme applikationen.
=> GRATIS C # -træningsvejledninger til alle
For at løse disse problemer tilbyder C # også generiske samlingsklasser. En generisk samling giver bedre ydelse under opbevaring og hentning af varerne.
Hvad du lærer:
C # liste
Vi har allerede lært om ArrayList i de tidligere artikler. Dybest set ligner en liste en ArrayList, den eneste forskel er, at listen er generisk. Listen har en unik egenskab til at udvide sin størrelse, når den vokser, svarende til matrixlisten.
Sådan initialiseres en liste?
Vi kan initialisere en liste på følgende måder:
//using List type for initialization List listInteger = new List(); //using IList type for initialization IList listString = new List();
Hvis du ser på eksemplet ovenfor, kan du se, at vi i den første linje har brugt Liste til at initialisere en heltalsliste. Men i anden linje har vi brugt IList til initialisering af strenglisten. Du kan bruge en hvilken som helst af disse til dit program. Listen er faktisk implementeringen af interface IList.
Sådan tilføjes og indsættes element på listen?
I lighed med ArrayList kan vi tilføje et element til listen ved hjælp af metoden Tilføj (). Tilføjelsesmetoden accepterer datatypeværdien som et argument.
Syntaks
ListName.Add(DataType value);
Lad os se på et simpelt program til at føje data til en liste og IList.
Program:
class Program { static void Main(string() args) { //using List type for initialization List listInteger = new List ;(); //Add elements to the list listInteger.Add(1); listInteger.Add(2); listInteger.Add(3); //using IList type for initialization IList listString = new List(); listString.Add('One'); listString.Add('Two'); listString.Add('Three'); Console.ReadLine(); } }
Elementet kan også tilføjes direkte, mens listen initialiseres. Vi kan direkte tilføje værdien til listen på selve initialiseringstidspunktet på en lignende måde som vi gjorde det under vores Arrays-kapitel.
Dette kan tilføjes ved at placere krøllede parenteser efter listen og derefter ved at skrive værdien inde i den adskilt med kommaer. Lad os ændre ovenstående program en smule, så vi kan tilføje værdien direkte under initialisering.
bedste sikkerhedskopieringssoftware til Windows 10 gratis
Så vores program vil nu se ud:
class Program { static void Main(string() args) { //using List type for initialization List listInteger = new List () {1,2,3}; //using IList type for initialization IList listString = new List(); listString.Add('One'); listString.Add('Two'); listString.Add('Three'); Console.ReadLine(); } }
I ovenstående program initialiserede vi heltallistenes værdier i starten under initialiseringen. Det tillod os at videregive værdien direkte uden at skrive Add () -metoden for hver værdi. Dette er ret nyttigt, hvis vi har en begrænset kvantificerbar mængde data, som vi har brug for at placere på en liste.
Sådan får du adgang til listen?
Vi kan få adgang til individuelle emner fra listen ved hjælp af indekset. Indekset kan videregives i firkantet parentes efter navnet på listen.
Syntaks
dataType Val = list_Name(index);
Lad os nu se på et simpelt program for at hente dataene fra listen, som vi oprettede i vores tidligere program.
Program
class Program { static void Main(string() args) { //using List type for initialization List listInteger = new List () {1,2,3}; int val = listInteger(1); Console.WriteLine(val); } }
Outputtet fra det følgende program er værdien ved indeks 1. Indekset starter fra 0, output vil være:
to
Lad os sige, at vi vil hente alle data fra listen, vi kan gøre dette ved at bruge for-hver loop eller til en loop.
For hver løkke
Vi kan bruge for hver sløjfe til at hente alle data fra listen.
class Program { static void Main(string() args) { //using List type for initialization List listInteger = new List () {1,2,3}; foreach (var val in listInteger) { Console.WriteLine(val); } } }
Her har vi gennemgået listen ved hjælp af for hver løkke ved at erklære en variabel værdi. Dette giver mulighed for hver løkke gennem listen, indtil der er nogle data inde i den.
For Loop
For at bruge for loop skal vi kende antallet af elementer, der findes i listen. Count () -metoden kan bruges til at få optællingen af elementet.
class Program { static void Main(string() args) { //using List type for initialization List listInteger = new List () {1,2,3}; //finding the size of the list using count int size = listInteger.Count; for (int i =0; iEn gang kan det være nødvendigt at vi også indsætter et nyt element på listen. For at gøre det skal vi bruge Insert () -metoden til at tilføje nye metoder overalt på listen. Indsætningsmetoden accepterer to argumenter, den første er det indeks, hvor du vil indsætte dataene, og den anden er de data, du vil indsætte.
Syntaksen for indsatsen er:
List_Name.Insert(index, element_to_be_inserted);
Lad os nu indsætte et element på den liste, vi oprettede tidligere. Vi vil tilføje en indsætningserklæring til ovenstående program og forsøge at se, hvordan det fungerer:
class Program { static void Main(string() args) { //using List type for initialization List listInteger = new List () {1,2,3}; //finding the size of the list using count int size = listInteger.Count; for (int i =0; i Hvis vi udfører ovenstående program, vil output være:
1
to
3
Listeværdi efter indsættelse af ny val
1
22
to
3
Efter for-sløjfen tilføjede vi indsætningserklæringen for at indsætte heltal 22 ved indeks 1 i den tidligere definerede liste. Derefter skrev vi en for hver sløjfe for at udskrive alle de elementer, der nu findes på listen (efter indsættelse af de første data).
Fra produktionen kan vi tydeligt se, at alle elementerne på listen er forskudt for at give plads til det nye element ved indeks 1. Indeks 1 har nu 22 som element, og det forrige element ved indeks 1, dvs. 2 er skiftet til det næste indeks og så videre.
Sådan fjernes et element fra listen?
Engang kan vi også kræve at fjerne emner fra listen. For at gøre det tilbyder C # to forskellige metoder. Disse to metoder er Fjern () og FjernAt (). Fjern bruges til at fjerne et bestemt element fra listen, og RemoveAt bruges til at fjerne ethvert element, der findes i det givne indeks.
Lad os se på syntaksen.
Syntaks
Remove(Element name); RemoveAt(index);
Lad os nu tilføje Fjern erklæring til den forrige kode og se hvad der sker.
class Program { static void Main(string() args) { //using List type for initialization List listInteger = new List () {1,2,3}; //finding the size of the list using count int size = listInteger.Count; for (int i =0; i Output fra ovenstående program vil være:
1
to
3
Fjernelse af værdi fra listen
1
3
I ovenstående program har vi brugt fjernelsesmetoden til at fjerne element 2 fra listen. Som du kan se i output, når metoden Fjern er udført, indeholder listen ikke længere det element, som vi fjernede.
På samme måde kan vi også bruge metoden RemoveAt. Lad os erstatte metoden Fjern i ovenstående program med RemoveAt () -metoden og videregive indeksnummer som parameter.
class Program { staticvoid Main(string() args) { //using List type for initialization List listInteger = new List () {1,2,3}; //finding the size of the list using count int size = listInteger.Count; for (int i =0; i Output fra ovenstående program vil være:
1
to
3
Fjernelse af værdi fra listen
1
to
I ovenstående program kan du tydeligt se, at vi har fjernet elementet, der er til stede i indeks 2, snarere end at fjerne heltal 2. Derfor kan man, afhængigt af kravet, bruge enten Fjern () eller FjernAt () til at fjerne et bestemt element fra en liste.
C # ordbog
Ordbog i C # svarer til den ordbog, vi har på ethvert sprog. Her har vi også en samling ord og deres betydning. Ordene er kendt som nøgle, og deres betydning eller definition kan defineres som værdier.
Ordbog accepterer to argumenter, den første er nøglen, og den anden er værdi. Det kan initialiseres ved hjælp af en variabel i enten ordbogsklasse eller IDictionary-grænseflade.
Syntaksen for ordbog er:
Dictionary
Lad os se på et simpelt program til initialisering af ordbogen:
hvordan åbner man en torrentfil
Dictionary data = new Dictionary();
I ovenstående program kan du tydeligt se, at vi har initialiseret ordbogsdataene med både nøgle og værdi som en streng. Men du kan bruge ethvert datatypepar til nøgler og værdier. For eksempel, hvis vi ændrer ovenstående udsagn til at indeholde en anden datatype, så vil den også være korrekt.
Dictionary data = new Dictionary();
Datatypen inde i vinkelbeslaget er til nøgler og værdier. Du kan beholde enhver datatype som nøgle og værdi.
Sådan tilføjes nøgler og værdier til en ordbog?
Vi så, hvordan vi kan initialisere en ordbog. Nu vil vi tilføje nøgler og deres værdier til ordbogen. Ordbogen er ret nyttig, når du vil tilføje forskellige data og deres værdier på en liste. Metoden Tilføj () kan bruges til at føje data til ordbogen.
Syntaks
DictionaryVariableName.Add(Key, Value);
Lad os nu inkludere Tilføj-erklæringen i ovenstående program for at tilføje nøgler og værdier til ordbogen.
Program
class Program { static void Main(string() args) { Dictionary dctn = new Dictionary(); dctn.Add('one', 'first'); dctn.Add('two', 'second'); dctn.Add('three', 'Third'); } }
I ovenstående program har vi brugt Add () -metoden til at føje nøglen og værdierne til ordbogen. Den første parameter, der sendes til metoden Add (), er nøglen, og den anden parameter er nøglens værdi.
Sådan får du adgang til nøgler og værdier fra en ordbog?
Som diskuteret i vores vejledning på listen kan vi også få adgang til elementer fra ordbogen på flere forskellige måder. Vi vil diskutere et par af de vigtige måder, hvorpå vi kan få adgang til det her. Vi vil diskutere for loop, for hver loop og index for at få adgang til dataelementer.
Indekset kan bruges til at få adgang til bestemte værdier fra listen.
For loop kan bruges til at få adgang til eller hente alle elementerne fra ordbogen, men kræver størrelsen på ordbogen for at stoppe loop. For hver sløjfe er mere fleksibel, kan den hente alle de tilstedeværende data fra ordbogen uden at kræve størrelsen på ordbogen.
Brug af indeksering
Et element fra indekset kan bruges svarende til et array for at få adgang til elementet, den grundlæggende forskel er, at vi i stedet for indeks har brug for nøgler for at få adgang til værdierne.
Syntaks
Dictionary_Name(key);
Program
class Program { static void Main(string() args) { Dictionary dctn = new Dictionary(); dctn.Add('one', 'first'); dctn.Add('two', 'second'); dctn.Add('three', 'Third'); string value = dctn('two'); Console.WriteLine(value); Console.ReadLine(); } }
Output fra ovenstående program vil være:
sekund
Brug af For løkke til adgang til element
For-loop kan bruges til at få adgang til alle elementerne i ordbogen. Men det er også nødvendigt at få optællingen af elementet inde i ordbogen til et antal iterationer, der kræves.
Lad os tilføje for loop til ovenstående program for at hente alle værdierne fra ordbogen.
class Program { static void Main(string() args) { Dictionary dctn = new Dictionary(); dctn.Add('one', 'first'); dctn.Add('two', 'second'); dctn.Add('three', 'Third'); for(int i =0; i Output fra ovenstående program vil være:
Elementet ved nøgle: en og dens værdi er: først
Elementet ved nøgle: to og dets værdi er: andet
Elementet ved nøgle: tre og dets værdi er: Tredje
I ovenstående program har vi brugt metoden ElementAt () til at få nøglen til et givet indeks, så brugte vi den samme nøgle til at hente dataene for nøgleværdien. For-sløjfen gentager alle data i ordbogen. Tælleegenskaber er blevet brugt til at få størrelsen på ordbogen til iteration.
Brug af for hver løkke
Svarende til for loop kan vi også bruge for hver loop.
Lad os se på ovenstående program med for-hver loop.
class Program { static void Main(string() args) { Dictionary dctn = new Dictionary(); dctn.Add('one', 'first'); dctn.Add('two', 'second'); dctn.Add('three', 'Third'); foreach (KeyValuePair item in dctn) { Console.WriteLine('The Key is :'+ item.Key+' - The value is: '+ item.Value); } Console.ReadLine(); } }
Output fra ovenstående program vil være:
Nøglen er: en - Værdien er: først
Nøglen er: to - Værdien er: anden
Nøglen er: tre - Værdien er: Tredje
Ovenstående program bruger KeyValuePair til at erklære variablen, så gentager vi gennem hvert af nøgleværdiparene i ordbogen og udskriver det til konsollen.
Hvordan valideres tilstedeværelsen af data i en ordbog?
Nogle gange skal vi kontrollere, om der findes en bestemt nøgle eller værdi i ordbogen eller ej. Vi kan validere dette ved hjælp af to metoder, dvs. ContainsValue () og ContainsKey () for at kontrollere den eksisterende nøgle eller værdi inde i ordbogen.
Indeholder metoden bruges til at validere, om den givne værdi findes i ordbogen eller ej. ContainsKey-metoden bruges til at kontrollere, om en given nøgle findes i ordbogen eller ej.
Syntaks
hvordan man åbner dat-fil på windows
Dictionary_Name.ContainsValue(Value); Dictionary_Name.ContainsKey(Key);
Lad os skrive et simpelt program til validering ved hjælp af Contains og ContainsKey-metoden.
class Program { static void Main(string() args) { Dictionary dctn = new Dictionary(); dctn.Add('one', 'first'); dctn.Add('two', 'second'); dctn.Add('three', 'Third'); bool key = dctn.ContainsKey('one'); bool val = dctn.ContainsValue('four'); Console.WriteLine('The key one is available : ' + key); Console.WriteLine('The value four is available : ' + val); Console.ReadLine(); } }
Output fra ovenstående program vil være:
Den vigtigste er tilgængelig: Sand
Værdien fire er tilgængelig: Falsk
I ovenstående program brugte vi først ContainsKey-metoden til at validere, hvis den givne nøgle er til stede inde i ordbogen. Da nøglen er til stede i ordbogen, returnerer metoden sand. Derefter bruger vi ContainsValue til at afgøre, om den givne værdi er til stede eller ej. Da værdien 'fire' ikke findes i ordbogen, returnerer den falsk.
Sådan fjernes et element fra en ordbog?
Der kan være et tidspunkt, hvor vi skal fjerne et bestemt nøgleværdipar fra ordbogen for at opfylde en bestemt programmeringslogik. Fjern metode kan bruges til at fjerne ethvert par fra ordbogen baseret på nøglen.
Syntaks
Remove(key);
Program
class Program { static void Main(string() args) { Dictionary dctn = new Dictionary(); dctn.Add('one', 'first'); dctn.Add('two', 'second'); dctn.Add('three', 'Third'); //removing key two dctn.Remove('two'); //validating if the key is present or not bool key = dctn.ContainsKey('two'); Console.WriteLine('The key two is available : ' + key); Console.ReadLine(); } }
Output fra ovenstående program vil være:
Nøglen to er tilgængelig: Falsk
I ovenstående program har vi først tilføjet et nøgleværdipar til ordbogen. Derefter fjernede vi en nøgle fra ordbogen, og vi brugte metoden ContainsKey () til at validere, hvis nøgleværdipar ikke længere er til stede i ordbogen.
Konklusion
Listen gemmer elementer af den specifikke datatype og vokser, når varer tilføjes. Det kan også gemme flere duplikatelementer. Vi kan let få adgang til emner inde på listen ved hjælp af indeks eller sløjfer. Listen er meget nyttig til lagring af en stor mængde data.
En ordbog bruges til at gemme nøgleværdipar. Her skal tasterne være unikke. Værdier fra ordbogen kan hentes ved hjælp af en sløjfe eller et indeks. Vi kan også validere nøgler eller værdier ved hjælp af metoden Indeholder.
=> Se den fulde C # træningsserie her
Anbefalet læsning
- C # Exception Handling Tutorial med kodeeksempler
- Python DateTime-tutorial med eksempler
- C # Funktioner / Metoder Vejledning med kodeeksempler
- SVN Tutorial: Kildekodestyring ved hjælp af Subversion
- C # String Tutorial - Strengmetoder med kodeeksempler
- Tortoise SVN Tutorial: Revisions In Code Repository
- Python Tuple-tutorial med praktiske eksempler
- Ls Command i Unix med eksempler