c list dictionary tutorial with code examples
Ta vadnica pojasnjuje seznam in slovar C # s primeri. Naučili se boste, kako inicializirati, zapolniti in dostopati do elementov v slovarju in seznamu C #:
V prejšnji vadnici o zbirkah C # smo izvedeli o vrstah zbirk, ki so prisotne v jeziku C #, kot so ArrayList, Hashtable, Stack, SortedList itd. Med temi vrstami zbirk je običajno, da lahko shranijo katero koli vrsto podatkovnih postavk.
To se zdi zelo koristno za shranjevanje različnih podatkovnih vrst znotraj ene zbirke, vendar je slaba stran ta, da je med pridobivanjem podatkov iz zbirke potrebno oddajanje podatkov v ustrezen podatkovni tip. Brez prenosa podatkov bo program povzročil izjemo med izvajanjem in lahko ovira uporabo.
=> BREZPLAČNI Vadnice za C # za vse
Za rešitev teh težav ponuja C # tudi generične razrede zbiranja. Splošna zbirka ponuja boljše delovanje med shranjevanjem in pridobivanjem predmetov.
Kaj se boste naučili:
Seznam C #
Za ArrayList smo že izvedeli v prejšnjih člankih. V osnovi je seznam podoben ArrayList, edina razlika je v tem, da je seznam generičen. Seznam ima edinstveno lastnost, da poveča svojo velikost, ko raste, podobno kot seznam matrike.
Kako inicializirati seznam?
Seznam lahko inicializiramo na naslednje načine:
//using List type for initialization List listInteger = new List(); //using IList type for initialization IList listString = new List();
Če pogledate zgornji primer, lahko vidite, da smo v prvi vrstici uporabili seznam za inicializacijo celoštevilčnega seznama. Toda v drugi vrstici smo uporabili IList za inicializacijo seznama nizov. Kar koli od tega lahko uporabite za svoj program. Seznam je pravzaprav izvedba vmesnika IList.
Kako dodati in vstaviti element na seznam?
Podobno kot ArrayList lahko na seznam dodamo element z uporabo metode Add (). Metoda add kot argument sprejme vrednost podatkovnega tipa.
Sintaksa
ListName.Add(DataType value);
Oglejmo si preprost program za dodajanje podatkov na seznam in 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(); } }
Element lahko dodate tudi neposredno med inicializacijo seznama. Vrednost lahko neposredno dodamo na seznam v času same inicializacije, na podoben način kot v poglavju Arrays.
To lahko dodate tako, da za seznam postavite zavite oklepaje, nato pa vrednost zapišete znotraj njega, ločeno z vejicami. Spremenimo zgornji program nekoliko, da bomo lahko vrednost dodali neposredno med inicializacijo.
kako odpreti datoteko .key v operacijskem sistemu Windows 10
Torej, naš program bo zdaj videti tako:
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(); } }
V zgornjem programu smo med inicializacijo na začetku inicializirali vrednosti s celoštevilčnimi seznami. Omogočil nam je, da vrednost posredujemo neposredno, ne da bi za vsako vrednost napisali metodo Add (). To je zelo koristno, če imamo omejeno količinsko določljivo količino podatkov, ki jih moramo vnesti na seznam.
Kako dostopati do seznama?
Do posameznih elementov s seznama lahko dostopamo z indeksom. Indeks je mogoče poslati v oglatem oklepaju za imenom seznama.
Sintaksa
dataType Val = list_Name(index);
Zdaj pa si oglejmo preprost program, s katerim pridobimo podatke s seznama, ki smo ga ustvarili v prejšnjem programu.
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); } }
Rezultat naslednjega programa bo vrednost pri indeksu 1. Indeks se začne od 0, rezultat pa bo:
dva
Zdaj, recimo, da želimo dobiti vse podatke s seznama, lahko to naredimo tako, da uporabimo zanko za vsako ali zanko.
Za vsako zanko
Za vsako zanko lahko dobimo vse podatke s seznama.
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); } } }
Tu smo pregledali seznam z uporabo za vsako zanko z deklaracijo spremenljivke. To bo omogočilo vsako zanko skozi seznam, dokler v njem ni nekaj podatkov.
Za Loop
Za uporabo zanke for moramo vedeti, koliko elementov je na seznamu. Za pridobitev števila elementa lahko uporabimo metodo Count ().
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; iVčasih bomo morda morali na seznam vstaviti tudi nov element. Za to moramo z metodo Insert () dodati novo metodo kjer koli znotraj seznama. Metoda vstavljanja sprejema dva argumenta, prvi je indeks, v katerega želite vstaviti podatke, drugi pa podatke, ki jih želite vstaviti.
Sintaksa vstavka je:
List_Name.Insert(index, element_to_be_inserted);
Zdaj vstavimo element znotraj seznama, ki smo ga prej ustvarili. Zgornjemu programu bomo dodali izjavo o vstavitvi in poskusili preveriti, kako deluje:
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 Če izvedemo zgornji program, bo rezultat:
eno
dva
3.
Vrednost seznama po vstavitvi novega val
eno
22.
dva
3.
Po zanki for smo dodali stavek insert, da smo v indeks 1 na prej definirani seznam vstavili celo število 22. Nato smo za vsako zanko napisali a za tiskanje vseh elementov, ki so zdaj na seznamu (po vstavitvi prvih podatkov).
Iz rezultata lahko jasno razberemo, da so bili vsi elementi seznama premaknjeni naprej, da se je umaknil prostor novemu elementu pri indeksu 1. Indeks 1 ima zdaj 22 kot element, prejšnji element pri indeksu 1, tj. naslednji indeks itd.
Kako odstraniti element s seznama?
Včasih bomo morda morali odstraniti tudi elemente s seznama. Za to C # ponuja dva različna načina. Ti dve metodi sta Remove () in RemoveAt (). Remove se uporablja za odstranitev določenega elementa s seznama, RemoveAt pa za odstranjevanje vseh elementov, ki so prisotni v danem indeksu.
Oglejmo si sintakso.
Sintaksa
Remove(Element name); RemoveAt(index);
Zdaj v prejšnjo kodo dodajte izjavo Remove in poglejmo, kaj se bo zgodilo.
katere so faze življenjskega cikla razvoja programske opreme
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 Rezultat zgornjega programa bo:
eno
dva
3.
Odstranjevanje vrednosti s seznama
eno
3.
V zgornjem programu smo z metodo odstranjevanja odstranili element 2 s seznama. Kot lahko vidite v izhodnih podatkih, ko je metoda Remove odstranjena, seznam ne vsebuje več elementa, ki smo ga odstranili.
Podobno lahko uporabimo tudi metodo RemoveAt. Zamenjajmo metodo Remove v zgornjem programu z metodo RemoveAt () in kot parameter posredujemo indeksno številko.
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 Rezultat zgornjega programa bo:
eno
dva
3.
Odstranjevanje vrednosti s seznama
eno
dva
V zgornjem programu lahko jasno vidite, da smo odstranili element, ki je prisoten v indeksu 2, namesto da bi odstranili celo število 2. Zato lahko odvisno od zahteve uporabimo Remove () ali RemoveAt (), da odstranimo določen element iz seznam.
C # slovar
Slovar v jeziku C # je podoben slovarju, ki ga imamo v katerem koli jeziku. Tu imamo tudi zbirko besed in njihovih pomenov. Besede so znane kot ključne, njihov pomen ali definicijo pa je mogoče opredeliti kot vrednosti.
Slovar sprejema dva argumenta, prvi je ključni, drugi pa vrednost. Inicializira se lahko s spremenljivko razreda slovarja ali vmesnika IDictionary.
Sintaksa slovarja je:
Dictionary
Oglejmo si preprost program za inicializacijo slovarja:
Dictionary data = new Dictionary();
V zgornjem programu lahko jasno vidite, da smo slovarske podatke inicializirali s ključem in vrednostjo kot niz. Za ključe in vrednosti pa lahko uporabite kateri koli par podatkovnih vrst. Na primer, če zgornjo izjavo spremenimo tako, da vsebuje drugačno vrsto podatkov, bo tudi pravilna.
Dictionary data = new Dictionary();
Podatkovni tip v kotnem oklepaju je za ključe in vrednosti. Kateri koli podatkovni tip lahko obdržite kot ključ in vrednost.
Kako v slovar dodati ključe in vrednote?
Videli smo, kako lahko inicializiramo slovar. Zdaj bomo v slovar dodali ključe in njihove vrednosti. Slovar je zelo uporaben, če želite na seznam dodati različne podatke in njihove vrednosti. Za dodajanje podatkov v slovar lahko uporabite metodo Add ().
Sintaksa
DictionaryVariableName.Add(Key, Value);
Zdaj vključimo stavek Add v zgornji program, da v slovar dodamo ključe in vrednosti.
Program
class Program { static void Main(string() args) { Dictionary dctn = new Dictionary(); dctn.Add('one', 'first'); dctn.Add('two', 'second'); dctn.Add('three', 'Third'); } }
V zgornjem programu smo za dodajanje ključa in vrednosti v slovar uporabili metodo Add (). Prvi parameter, ki se posreduje metodi Add (), je ključ, drugi parameter pa vrednost ključa.
Kako dostopati do ključev in vrednot iz slovarja?
Kot je razloženo v naši vadnici na seznamu, lahko do elementov iz slovarja dostopamo tudi na več različnih načinov. Tukaj bomo obravnavali nekaj pomembnih načinov, kako lahko do njega pridemo. Pogovorili se bomo za zanko, za vsako zanko in indeks za dostop do podatkovnih postavk.
Indeks se lahko uporablja za dostop do določenih vrednosti s seznama.
Zanka For se lahko uporablja za dostop do vseh elementov iz slovarja ali pridobivanje vseh elementov, vendar zahteva velikost slovarja, da ustavi zanko. Vsaka zanka je bolj prilagodljiva in lahko pridobi vse podatke iz slovarja, ne da bi zahtevala velikost slovarja.
Uporaba indeksiranja
Element iz indeksa lahko uporabimo podobno kot matrika za dostop do elementa, osnovna razlika je v tem, da namesto indeksa potrebujemo ključe za dostop do vrednosti.
Sintaksa
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(); } }
Rezultat zgornjega programa bo:
drugič
Uporaba za zanko za dostop do elementa
Z zanko for lahko dostopate do vseh elementov slovarja. Vendar pa mora dobiti tudi število elementov v slovarju za potrebno število ponovitev.
Zgornjemu programu dodamo zanko for, da pridobimo vse vrednosti iz slovarja.
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 Rezultat zgornjega programa bo:
Element pri ključu: ena in njegova vrednost je: prvi
Element pri ključu: dva in njegova vrednost je: drugi
Element pri ključu: tri in njegova vrednost je: Tretji
V zgornjem programu smo uporabili metodo ElementAt (), da smo dobili ključ v določenem indeksu, nato pa smo z istim ključem pridobili podatke vrednosti ključa. Zanka for se ponovi skozi vse podatke v slovarju. Lastnost Count je bila uporabljena za določitev velikosti slovarja za ponovitev.
Uporaba za vsako zanko
Podobno kot za zanko lahko tudi za vsako zanko uporabimo.
Oglejmo si zgornji program z zanko za vsako.
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(); } }
Rezultat zgornjega programa bo:
Ključ je: ena - vrednost je: prva
Ključ je: dva - vrednost je: drugi
Ključ je: tri - vrednost je: tretja
Zgornji program uporablja KeyValuePair za deklariranje spremenljivke, nato preletimo skozi vsak par ključ-vrednost v slovarju in to natisnemo na konzolo.
Kako preveriti prisotnost podatkov v slovarju?
Včasih moramo preveriti, ali določen ključ ali vrednost obstaja v slovarju ali ne. To lahko potrdimo z dvema metodama, tj. ContainsValue () in ContainsKey (), da preverimo, ali obstaja v slovarju obstoječi ključ ali vrednost.
Metoda Contains se uporablja za preverjanje, če je določena vrednost prisotna v slovarju ali ne. Z metodo ContainsKey preverimo, ali dani ključ obstaja v slovarju ali ne.
Sintaksa
Dictionary_Name.ContainsValue(Value); Dictionary_Name.ContainsKey(Key);
Napišimo preprost program za preverjanje z uporabo metode Contains in ContainsKey.
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(); } }
Rezultat zgornjega programa bo:
Na voljo je ključni: True
Na voljo je vrednost štiri: False
V zgornjem programu smo najprej uporabili metodo ContainsKey za preverjanje veljavnosti, če je dani ključ prisoten v slovarju. Ker je ključ prisoten v slovarju, metoda vrne true. Nato z ContainsValue določimo, ali je podana vrednost prisotna ali ne. Ker vrednost 'štiri' ni v slovarju, bo vrnila false.
Kako odstraniti element iz slovarja?
Morda bo čas, ko bomo za uresničitev določene programske logike morali iz slovarja odstraniti določen par ključ-vrednost. Z metodo odstranjevanja lahko iz slovarja na podlagi ključa odstranite kateri koli par.
Sintaksa
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(); } }
Rezultat zgornjega programa bo:
Na voljo sta dva ključa: False
youtube na mp4 hitro brezplačno na spletu
V zgornjem programu smo v slovar dodali par ključ-vrednost. Nato smo iz slovarja odstranili ključ in uporabili metodo ContainsKey () za preverjanje, če par ključ-vrednost v slovarju ni več prisoten.
Zaključek
Seznam shrani elemente določene vrste podatkov in raste, ko so elementi dodani. Prav tako lahko shrani več podvojenih elementov. Do elementov znotraj seznama lahko enostavno dostopamo z indeksom ali zankami. Seznam je v veliko pomoč pri shranjevanju velike količine podatkov.
Slovar se uporablja za shranjevanje parov ključ / vrednost. Tu morajo biti ključi unikatni. Vrednosti iz slovarja je mogoče pridobiti z zanko ali indeksom. Ključe ali vrednosti lahko preverimo tudi z metodo Contains.
=> Oglejte si celotno serijo treningov C # tukaj
Priporočeno branje
- Vadnica za ravnanje z izjemami C # s primeri kode
- Vadnica Python DateTime s primeri
- Vadnica za funkcije / metode C # s primeri kode
- Vadnica za SVN: Upravljanje izvorne kode z uporabo Subverzije
- C # Vadnica za niz - String metode s primeri kode
- Tortoise SVN Vadnica: Revizije v odlagališču kod
- Vadnica za Python Tuple s praktičnimi primeri
- Ls ukaz v Unixu s primeri