c list dictionary tutorial with code examples
Ovaj vodič objašnjava popis C # i rječnik s primjerima. Naučit ćete kako inicijalizirati, popuniti i pristupiti elementima u rječniku i popisu C #:
U našem ranijem vodiču o C # kolekcijama saznali smo o vrstama kolekcija prisutnih u C # poput ArrayList, Hashtable, Stack, SortedList itd. Ono što je zajedničko među ovim vrstama kolekcija je da mogu pohraniti bilo koju vrstu podataka.
Ovo se čini prilično korisnim za pohranu različitih vrsta podataka unutar jedne cjeline zbirke, ali loša strana je ta što je prilikom dohvaćanja podataka iz zbirke potrebno prenošenje podataka na primjenjivu vrstu podataka. Bez prijenosa podataka, program će izbaciti runtime iznimku i može ometati aplikaciju.
=> BESPLATNI Vodiči za učenje C # za sve
Da bi riješio ove probleme, C # također nudi generičke klase prikupljanja. Generička kolekcija nudi bolje performanse tijekom skladištenja i preuzimanja predmeta.
Što ćete naučiti:
Popis C #
O ArrayListu smo već saznali u prethodnim člancima. U osnovi, Popis je sličan ArrayListu, jedina razlika je u tome što je Popis generički. Popis ima jedinstveno svojstvo proširivanja svoje veličine kako raste, slično popisu polja.
Kako inicijalizirati popis?
Popis možemo inicijalizirati na sljedeće načine:
//using List type for initialization List listInteger = new List(); //using IList type for initialization IList listString = new List();
Ako pogledate gornji primjer, možete vidjeti da smo u prvom retku koristili List za inicijalizaciju cjelovitog popisa. Ali u drugom smo retku koristili IList za inicijalizaciju popisa nizova. Bilo koji od njih možete koristiti za svoj program. Popis je zapravo implementacija sučelja IList.
Kako dodati i umetnuti element na popis?
Slično ArrayListu, možemo dodati element na Popis pomoću metode Add (). Metoda dodavanja prihvaća vrijednost tipa podataka kao argument.
Sintaksa
ListName.Add(DataType value);
Pogledajmo jednostavan program za dodavanje podataka na popis i 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 se također može dodati izravno tijekom inicijalizacije popisa. Vrijednost možemo izravno dodati na popis u trenutku same inicijalizacije, na sličan način kao što smo to učinili tijekom našeg poglavlja Nizovi.
To se može dodati stavljanjem kovrčavih zagrada nakon popisa, a zatim zapisivanjem vrijednosti unutar njega odvojenih zarezima. Promijenimo malo gornji program kako bismo mogli dodati vrijednost izravno tijekom inicijalizacije.
najbolji google chrome pop up bloker -
Dakle, naš će program sada izgledati ovako:
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(); } }
U gornjem programu inicijalizirali smo vrijednosti cjelobrojnih popisa na početku tijekom inicijalizacije. Omogućio nam je da vrijednost proslijedimo izravno bez pisanja metode Add () za svaku vrijednost. To je vrlo korisno ako imamo ograničenu količinski mjerljivu količinu podataka koje trebamo staviti na popis.
Kako pristupiti popisu?
Pojedinim stavkama s popisa možemo pristupiti pomoću indeksa. Indeks se može prenijeti u uglatu zagradu nakon naziva popisa.
Sintaksa
dataType Val = list_Name[index];
Sada, pogledajmo jednostavan program za dobivanje podataka s popisa koji smo stvorili u našem prethodnom 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); } }
Izlaz sljedećeg programa bit će vrijednost indeksa 1. Indeks počinje od 0, a izlaz će biti:
dva
Recimo da želimo dobiti sve podatke s Popisa, to možemo učiniti pomoću petlje za svaku ili petlje.
Za svaku petlju
Za svaku petlju možemo dobiti sve podatke s popisa.
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); } } }
Ovdje smo pregledali popis koristeći za svaku petlju deklariranjem vrijednosti varijable. To će omogućiti svaku petlju kroz popis dok u njemu nema podataka.
Za Loop
Da bismo koristili petlju for, moramo znati broj elemenata prisutnih unutar popisa. Metoda Count () može se koristiti za dobivanje broja elementa.
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; iPonekad ćemo možda trebati i umetnuti novi element unutar popisa. Da bismo to učinili, moramo koristiti metodu Insert () za dodavanje nove metode bilo gdje unutar popisa. Metoda umetanja prihvaća dva argumenta, prvi je indeks u koji želite umetnuti podatke, a drugi su podaci koje želite umetnuti.
Sintaksa za umetak je:
List_Name.Insert(index, element_to_be_inserted);
Sad, umetnimo element unutar popisa koji smo ranije stvorili. Gornjem ćemo programu dodati izjavu za umetanje i pokušat ćemo vidjeti kako to funkcionira:
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 Ako izvršimo gornji program, izlaz će biti:
1
dva
3
Vrijednost popisa nakon umetanja nove val
1
22
dva
3
Nakon petlje for, dodali smo izjavu insert da bismo umetnuli cijeli broj 22 u indeks 1 na prethodno definiranom popisu. Zatim smo za svaku petlju napisali ispis svih elemenata koji su sada prisutni na popisu (nakon umetanja prvih podataka).
alati za prikupljanje zahtjeva koje koriste poslovni analitičari
Iz rezultata možemo jasno vidjeti da su svi elementi popisa pomaknuti naprijed kako bi se ustupilo mjesto novom elementu u indeksu 1. Indeks 1 sada ima 22 kao element, a prethodni element u indeksu 1, tj. 2 sljedeći indeks i tako dalje.
Kako ukloniti element sa popisa?
Ponekad ćemo možda zatražiti i uklanjanje stavki s popisa. Da biste to učinili, C # nudi dvije različite metode. Ove dvije metode su Remove () i RemoveAt (). Remove se koristi za uklanjanje određenog elementa s popisa, a RemoveAt koristi se za uklanjanje bilo kojeg elementa koji je prisutan u danom indeksu.
Pogledajmo sintaksu.
Sintaksa
Remove(Element name); RemoveAt(index);
Ajmo sada dodati izjavu Remove na prethodni kôd i vidjeti što će se dogoditi.
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 gore navedenog programa bit će:
1
dva
3
Uklanjanje vrijednosti s popisa
1
3
U gore navedenom programu koristili smo metodu uklanjanja kako bismo uklonili element 2 s popisa. Kao što možete vidjeti u izlazu nakon izvršavanja metode Remove, popis više ne sadrži element koji smo uklonili.
Slično tome, možemo koristiti i metodu RemoveAt. Zamijenimo metodu Remove u gornjem programu metodom RemoveAt () i proslijedimo indeksni broj kao parametar.
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 gore navedenog programa bit će:
1
dva
3
Uklanjanje vrijednosti s popisa
1
dva
U gornjem programu možete jasno vidjeti da smo uklonili element prisutan u indeksu 2 umjesto da uklonimo cijeli broj 2. Stoga, ovisno o zahtjevu, za uklanjanje određenog elementa iz alata možemo upotrijebiti Remove () ili RemoveAt () popis.
Rječnik C #
Rječnik na jeziku C # sličan je rječniku koji imamo na bilo kojem jeziku. Ovdje također imamo zbirku riječi i njihova značenja. Riječi su poznate kao ključne i njihovo značenje ili definicija mogu se definirati kao vrijednosti.
Rječnik prihvaća dva argumenta, prvi je ključni, a drugi vrijednost. Može se inicijalizirati korištenjem varijable bilo klase Rječnik ili IDictionary sučelja.
Sintaksa Rječnika je:
Dictionary
Pogledajmo jednostavan program za inicijalizaciju Rječnika:
Dictionary data = new Dictionary();
U gornjem programu jasno možete vidjeti da smo podatke rječnika inicijalizirali i ključem i vrijednošću kao niz. Ali za ključeve i vrijednosti možete koristiti bilo koji par podataka. Na primjer, ako gornju izjavu promijenimo tako da sadrži drugu vrstu podataka, tada će također biti točna.
Dictionary data = new Dictionary();
Tip podataka unutar kutne zagrade odnosi se na ključeve i vrijednosti. Možete zadržati bilo koju vrstu podataka kao ključ i vrijednost.
Kako dodati ključeve i vrijednosti u rječnik?
Vidjeli smo kako možemo inicijalizirati rječnik. Sada ćemo u rječnik dodati ključeve i njihove vrijednosti. Rječnik je vrlo koristan kada na popis želite dodati različite podatke i njihove vrijednosti. Metoda Add () može se koristiti za dodavanje podataka u rječnik.
Sintaksa
DictionaryVariableName.Add(Key, Value);
Sad uvrstimo naredbu Add u gornji program za dodavanje ključeva i vrijednosti u rječnik.
Program
class Program { static void Main(string[] args) { Dictionary dctn = new Dictionary(); dctn.Add('one', 'first'); dctn.Add('two', 'second'); dctn.Add('three', 'Third'); } }
U gore navedenom programu koristili smo metodu Add () za dodavanje ključa i vrijednosti u rječnik. Prvi parametar prosljeđen metodi Add () je ključ, a drugi parametar vrijednost ključa.
Kako pristupiti ključevima i vrijednostima iz rječnika?
Kao što je raspravljeno u našem vodiču s popisa, elementima iz rječnika možemo pristupiti i na nekoliko različitih načina. Ovdje ćemo razgovarati o nekoliko važnih načina na koje mu možemo pristupiti. Razgovarat ćemo za petlju, za svaku petlju i indeks za pristup stavkama podataka.
Indeks se može koristiti za pristup određenim vrijednostima s popisa.
Petlja For može se koristiti za pristup ili preuzimanje svih elemenata iz rječnika, ali zahtijeva veličinu rječnika da zaustavi petlju. Budući da je svaka petlja fleksibilnija, može dohvatiti sve podatke prisutne iz rječnika bez potrebe za veličinom rječnika.
Korištenje indeksiranja
Element iz indeksa može se koristiti slično kao niz za pristup elementu, osnovna je razlika u tome što umjesto indeksa trebamo ključeve za pristup vrijednostima.
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 gore navedenog programa bit će:
drugi
Korištenje za petlju za pristup elementu
Petlja for može se koristiti za pristup svim elementima rječnika. Ali također treba dobiti broj elemenata u rječniku za potreban broj iteracija.
Dodajmo petlju for u gornji program za dohvaćanje svih vrijednosti iz rječnika.
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 gore navedenog programa bit će:
Element u ključu: jedan i njegova vrijednost je: prvi
Element u ključu: dva i njegova vrijednost je: drugi
Element u ključu: tri i njegova vrijednost je: Treći
U gore navedenom programu koristili smo metodu ElementAt () za dobivanje ključa u zadanom indeksu, a zatim smo koristili isti ključ za dohvaćanje podataka vrijednosti ključa. Petlja for prolazi kroz sve podatke unutar rječnika. Svojstvo Count korišteno je za dobivanje veličine rječnika za iteraciju.
Korištenje za svaku petlju
Slično kao za petlju, također možemo koristiti i za svaku petlju.
Pogledajmo gornji program s petljom za svaku.
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 gore navedenog programa bit će:
Ključ je: jedan - Vrijednost je: prvi
Ključ je: dva - Vrijednost je: drugo
Ključ je: tri - vrijednost je: treća
Gornji program koristi KeyValuePair za deklariranje varijable, a zatim prelazimo kroz svaki od parova ključ / vrijednost u rječniku i ispisujemo to na konzolu.
Kako provjeriti prisutnost podataka u rječniku?
Ponekad moramo provjeriti postoji li određeni ključ ili vrijednost u rječniku ili ne. To možemo provjeriti pomoću dvije metode, tj. ContainsValue () i ContainsKey () za provjeru postojećeg ključa ili vrijednosti unutar rječnika.
Metoda Contains koristi se za provjeru valjanosti je li zadana vrijednost prisutna u rječniku ili ne. Način ContainsKey koristi se za provjeru postoji li zadani ključ u rječniku ili ne.
ispitivanje prihvaćanja korisnika (uat)
Sintaksa
Dictionary_Name.ContainsValue(Value); Dictionary_Name.ContainsKey(Key);
Napišimo jednostavan program za provjeru valjanosti metodom Contains i 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 gore navedenog programa bit će:
Dostupna je ključna: Tačno
Dostupna je vrijednost četiri: False
U gornjem programu prvo smo koristili metodu ContainsKey za provjeru valjanosti ako je zadani ključ prisutan u rječniku. Kako je ključ prisutan u rječniku, metoda vraća true. Tada koristimo ContainsValue da utvrdimo je li zadana vrijednost prisutna ili ne. Kako vrijednost 'četiri' nije prisutna u rječniku, vratit će se false.
Kako ukloniti element iz rječnika?
Možda će biti vremena kada ćemo trebati ukloniti određeni par ključ / vrijednost iz rječnika da bismo ispunili određenu programsku logiku. Način uklanjanja može se koristiti za uklanjanje bilo kojeg para iz rječnika na temelju ključa.
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 gore navedenog programa bit će:
Dostupne su dvije ključne riječi: False
U gornji program prvo smo dodali par ključ / vrijednost u rječnik. Zatim smo iz rječnika uklonili ključ i koristili smo metodu ContainsKey () za provjeru valjanosti ako par ključ / vrijednost više nije prisutan u rječniku.
Zaključak
Popis pohranjuje elemente određene vrste podataka i raste kako se dodaju stavke. Također može pohraniti više dupliciranih elemenata. Stavkama unutar popisa možemo lako pristupiti pomoću indeksa ili petlji. Popis je vrlo koristan za pohranu velike količine podataka.
Rječnik se koristi za spremanje parova ključ / vrijednost. Ovdje tipke moraju biti jedinstvene. Vrijednosti iz rječnika mogu se dobiti pomoću petlje ili indeksa. Ključeve ili vrijednosti možemo provjeriti i metodom Contains.
=> Cijelu C # seriju treninga pogledajte ovdje
Preporučena literatura
- Vodič za rukovanje iznimkama za C # s primjerima koda
- Python DateTime Vodič s primjerima
- Vodič za funkcije # C / Metode s primjerima koda
- SVN Vodič: Upravljanje izvornim kodom pomoću Subverzije
- Vodič za niz stringa C # - Nizne metode s primjerima koda
- Vodič za kornjače SVN: Revizije u spremištu koda
- Vodič za Python Tuple s praktičnim primjerima
- Ls naredba u Unixu s primjerima