c list dictionary tutorial with code examples
Denne opplæringen forklarer C # List And Dictionary med eksempler. Du vil lære å initialisere, fylle ut og få tilgang til elementer i C # ordbok og liste:
I vår tidligere opplæring om C # Collections lærte vi om typer samlinger som er tilstede i C # som ArrayList, Hashtable, Stack, SortedList, etc. Det som er vanlig blant disse samlingstypene er at de kan lagre alle typer dataelementer.
Dette virker ganske nyttig for lagring av forskjellige datatyper i en enkelt samlingsenhet, men ulempen er at mens du henter data fra samlingen, kreves datakasting til en gjeldende datatype. Uten datakast vil programmet kaste et unntak for kjøretid og kan hemme applikasjonen.
=> GRATIS C # Training Tutorials For All
For å løse disse problemene tilbyr C # også generiske samlingsklasser. En generisk samling gir bedre ytelse under lagring og henting av varene.
Hva du vil lære:
C # liste
Vi har allerede lært om ArrayList i de forrige artiklene. I utgangspunktet ligner en liste en ArrayList, den eneste forskjellen er at listen er generisk. Listen har en unik egenskap til å utvide størrelsen når den vokser, i likhet med matriselisten.
Hvordan initialisere en liste?
Vi kan initialisere en liste på følgende måter:
//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 i første linje har vi brukt List til å initialisere en heltalliste. Men i andre linje har vi brukt IList til initialisering av strenglisten. Du kan bruke noen av disse til programmet ditt. Listen er faktisk implementeringen av grensesnittet IList.
Hvordan legge til og sette inn element på listen?
I likhet med ArrayList kan vi legge til et element i listen ved hjelp av Add () -metoden. Add-metoden godtar datatypeverdi som argument.
Syntaks
ListName.Add(DataType value);
La oss ta en titt på et enkelt program for å legge til data i 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å legges til direkte mens listen initialiseres. Vi kan legge verdien til listen direkte på selve initialiseringstidspunktet, på samme måte som vi gjorde det under vårt Arrays-kapittel.
Dette kan legges til ved å plassere krøllete parenteser etter listen og deretter skrive verdien i den atskilt med komma. La oss endre programmet ovenfor litt slik at vi kan legge til verdien direkte under initialiseringen.
hvordan du bruker css-velgeren i selen
Så programmet vårt vil nå se ut:
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 programmet ovenfor initialiserte vi heltallslisteverdiene i starten under initialiseringen. Det tillot oss å overføre verdien direkte uten å skrive Add () -metoden for hver verdi. Dette er ganske nyttig hvis vi har en begrenset kvantifiserbar mengde data som vi trenger å legge inn i en liste.
Hvordan få tilgang til listen?
Vi kan få tilgang til individuelle elementer fra listen ved å bruke indeksen. Indeksen kan sendes i firkantet parentes etter navnet på listen.
Syntaks
dataType Val = list_Name(index);
La oss nå se på et enkelt program for å hente dataene fra listen vi opprettet i vårt forrige 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); } }
Utgangen fra det følgende programmet vil være verdien ved indeks 1. Indeksen starter fra 0, og utgangen vil være:
to
La oss si at vi vil hente alle dataene fra listen, vi kan gjøre dette ved å bruke for-hver loop eller for en loop.
For hver løkke
Vi kan bruke for hver løkke for å hente alle dataene 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 gått gjennom listen ved hjelp av for hver løkke ved å erklære en variabel verdi. Dette vil tillate hver løkke gjennom listen til det er noen data i den.
For Loop
For å bruke for loop må vi vite hvor mange elementer som er tilstede i listen. Count () -metoden kan brukes til å få tellingen av 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 hende at vi også trenger å sette inn et nytt element i listen. For å gjøre det må vi bruke Sett inn () -metoden for å legge til ny metode hvor som helst i listen. Sett inn metoden godtar to argumenter, den første er indeksen der du vil sette inn dataene, og den andre er dataene du vil sette inn.
Syntaksen for innsatsen er:
List_Name.Insert(index, element_to_be_inserted);
La oss nå sette inn et element i listen vi opprettet tidligere. Vi vil legge til en innsettingserklæring i programmet ovenfor, og vil prøve å 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 utfører programmet ovenfor, vil utdataene være:
1
to
3
Listeverdi etter innføring av ny verdi
1
22
to
3
Etter for-sløyfen la vi til innsettingsuttalelsen for å sette inn heltall 22 ved indeks 1 i den tidligere definerte listen. Så skrev vi en for hver sløyfe for å skrive ut alle elementene som nå er inne i listen (etter å ha satt inn de første dataene).
Vi ser tydelig fra utdataene at alle elementene i listen er forskjøvet for å gi plass til det nye elementet ved indeks 1. Indeksen 1 har nå 22 som element og det forrige elementet ved indeks 1 dvs. 2 har skiftet til neste indeks og så videre.
Hvordan fjerne et element fra listen?
En gang kan det hende vi også trenger å fjerne elementer fra listen. For å gjøre det tilbyr C # to forskjellige metoder. Disse to metodene er Fjern () og FjernAt (). Fjern brukes til å fjerne et bestemt element fra listen, og RemoveAt brukes til å fjerne ethvert element som er tilstede i den gitte indeksen.
La oss se på syntaksen.
Syntaks
Remove(Element name); RemoveAt(index);
La oss nå legge til Fjern-setning til forrige kode og se hva som skjer.
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 Resultatet av programmet ovenfor vil være:
1
to
3
Fjerner verdien fra listen
1
3
I programmet ovenfor har vi brukt metoden for å fjerne element 2 fra listen. Som du kan se i utgangen når Fjern-metoden er utført, inneholder ikke listen lenger elementet vi fjernet.
På samme måte kan vi også bruke, FjernAt-metoden. La oss erstatte Fjern-metoden i det ovennevnte programmet med FjernAt () -metoden og passere 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 Resultatet av programmet ovenfor vil være:
1
to
3
Fjerner verdien fra listen
1
to
I programmet ovenfor kan du tydelig se at vi har fjernet elementet som er tilstede i indeks 2 i stedet for å fjerne heltallet 2. Avhengig av kravet kan man bruke enten Fjern () eller FjernAt () for å fjerne et bestemt element fra en liste.
C # ordbok
Ordbok i C # ligner ordboken vi har på alle språk. Her har vi også en samling ord og deres betydning. Ordene er kjent som nøkkel, og deres betydning eller definisjon kan defineres som verdier.
Ordbok godtar to argumenter, den første er nøkkelen og den andre er verdien. Den kan initialiseres ved å bruke en variabel i enten ordboksklasse eller IDictionary-grensesnitt.
Syntaksen for ordbok er:
Dictionary
La oss ta en titt på et enkelt program for å initialisere ordboken:
Dictionary data = new Dictionary();
I programmet ovenfor kan du tydelig se at vi har initialisert ordboksdataene med både nøkkel og verdi som streng. Men du kan bruke hvilket som helst datatypepar for nøkler og verdier. For eksempel, Hvis vi endrer utsagnet ovenfor for å inneholde en annen datatype, vil det også være riktig.
Dictionary data = new Dictionary();
Datatypen inne i vinkelbraketten er for nøkler og verdier. Du kan beholde hvilken som helst datatype som nøkkel og verdi.
Hvordan legge til nøkler og verdier til en ordbok?
Vi så hvordan vi kan initialisere en ordbok. Nå vil vi legge til nøkler og deres verdier i ordboken. Ordboken er ganske nyttig når du vil legge til forskjellige data og deres verdier i en liste. Metoden Add () kan brukes til å legge til data i ordboken.
Syntaks
DictionaryVariableName.Add(Key, Value);
La oss nå inkludere Add-setningen i programmet ovenfor for å legge til nøkler og verdier i ordboken.
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 programmet ovenfor har vi brukt Add () -metoden for å legge til nøkkel og verdier i ordboken. Den første parameteren som sendes til Add () -metoden er nøkkelen, og den andre parameteren er verdien på nøkkelen.
Hvordan få tilgang til nøkler og verdier fra en ordbok?
Som diskutert i vår opplæring på listen, kan vi også få tilgang til elementer fra ordboken på flere forskjellige måter. Vi vil diskutere noen av de viktige måtene vi kan få tilgang til her. Vi vil diskutere for loop, for hver loop og index for tilgang til dataelementer.
hvordan du trekker ut torrentfiler ved hjelp av 7zip
Indeksen kan brukes til å få tilgang til spesifikke verdier fra listen.
For loop kan brukes til å få tilgang til eller hente alle elementene fra ordboken, men krever størrelsen på ordboken for å stoppe løkken. For hver sløyfe er mer fleksibel, kan den hente alle dataene som er tilstede fra ordboken uten å kreve størrelsen på ordboken.
Bruke indeksering
Et element fra indeksen kan brukes som en matrise for å få tilgang til elementet, den grunnleggende forskjellen er at i stedet for indeks trenger vi nøkler for å få tilgang til verdiene.
Syntaks
Dictionary_Name(key);
Program
hvordan er java forskjellig fra c ++
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(); } }
Resultatet av programmet ovenfor vil være:
sekund
Bruker For Loop For Accessing Element
For-loop kan brukes til å få tilgang til alle elementene i ordboken. Men det må også få tellingen av elementet i ordboken for et antall iterasjoner som kreves.
La oss legge til for loop til programmet ovenfor for å hente alle verdiene fra ordboken.
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 Resultatet av programmet ovenfor vil være:
Elementet ved nøkkel: ett og verdien er: først
Elementet ved nøkkel: to og verdien er: andre
Elementet ved nøkkel: tre og dens verdi er: Tredje
I det ovennevnte programmet har vi brukt ElementAt () -metoden for å få nøkkelen til en gitt indeks, så brukte vi den samme nøkkelen for å hente dataene til nøkkelverdien. For-sløyfen går gjennom alle dataene i ordboken. Telleegenskap er brukt for å få størrelsen på ordboken for iterasjon.
Bruker for hver løkke
I likhet med for loop kan vi også bruke for hver loop.
La oss ta en titt på programmet ovenfor med for-hver løkke.
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(); } }
Resultatet av programmet ovenfor vil være:
Nøkkelen er: en - Verdien er: først
Nøkkelen er: to - Verdien er: andre
Nøkkelen er: tre - Verdien er: Tredje
Ovennevnte program bruker KeyValuePair for å deklarere variabelen, så gjentar vi gjennom hvert av nøkkelverdiparene i ordboken og skriver det ut til konsollen.
Hvordan validere tilstedeværelsen av data i en ordbok?
Noen ganger må vi verifisere om en bestemt nøkkel eller verdi finnes i ordboken eller ikke. Vi kan validere dette ved å bruke to metoder, dvs. ContainsValue () og ContainsKey () for å se etter den eksisterende nøkkelen eller verdien i ordboken.
Inneholder metoden brukes til å validere om den gitte verdien er tilstede i ordboken eller ikke. ContainsKey-metoden brukes til å sjekke om en gitt nøkkel finnes i ordboken eller ikke.
Syntaks
Dictionary_Name.ContainsValue(Value); Dictionary_Name.ContainsKey(Key);
La oss skrive et enkelt program for å validere ved hjelp av Contains and 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(); } }
Resultatet av programmet ovenfor vil være:
Den viktigste er tilgjengelig: True
Verdien fire er tilgjengelig: Falsk
I programmet ovenfor brukte vi først ContainsKey-metoden for å validere om den gitte nøkkelen er tilstede i ordboken. Ettersom nøkkelen er til stede i ordboken, returnerer metoden sant. Deretter bruker vi ContainsValue for å bestemme om den gitte verdien er tilstede eller ikke. Ettersom verdien “fire” ikke er tilstede i ordboken, vil den returnere falsk.
Hvordan fjerne et element fra en ordbok?
Det kan være en tid da vi trenger å fjerne et bestemt nøkkelverdipar fra ordboken for å oppfylle en viss programmeringslogikk. Fjern metoden kan brukes til å fjerne et par fra ordboken basert på nøkkelen.
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(); } }
Resultatet av programmet ovenfor vil være:
Nøkkelen to er tilgjengelig: False
I programmet ovenfor har vi først lagt til et nøkkelverdipar i ordboken. Så fjernet vi en nøkkel fra ordboken, og vi brukte metoden ContainsKey () for å validere hvis nøkkelverdiparet ikke lenger er tilstede i ordboken.
Konklusjon
Listen lagrer elementer av den spesifikke datatypen og vokser når varene blir lagt til. Det kan også lagre flere dupliserte elementer. Vi kan enkelt få tilgang til elementer i listen ved å bruke indeks eller sløyfer. Listen er veldig nyttig når du lagrer en stor mengde data.
En ordbok brukes til å lagre nøkkelverdipar. Her må tastene være unike. Verdier fra ordboken kan hentes ved hjelp av en sløyfe eller indeks. Vi kan også validere nøkler eller verdier ved hjelp av Inneholder-metoden.
=> Se hele C # Training Series her
Anbefalt lesing
- C # Exception Handling Tutorial med kodeeksempler
- Python DateTime Tutorial med eksempler
- C # Funksjoner / metoder Opplæring med kodeeksempler
- SVN Tutorial: Source Code Management Using 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