c list dictionary tutorial with code examples
Tento výukový program vysvětluje seznam C # a slovník s příklady. Dozvíte se, jak inicializovat, naplnit a přistupovat k prvkům v C # slovníku a seznamu:
V našem dřívějším tutoriálu o kolekcích C # jsme se dozvěděli o typech kolekcí přítomných v C #, jako jsou ArrayList, Hashtable, Stack, SortedList atd. Mezi těmito typy kolekcí je běžné, že mohou ukládat jakýkoli typ datové položky.
To se zdá docela užitečné pro ukládání různých datových typů uvnitř jedné entity kolekce, ale nevýhodou je, že při načítání dat z kolekce je vyžadováno datové vysílání na příslušný datový typ. Bez datového vysílání program vyvolá runtime výjimku a může bránit aplikaci.
=> Cvičení C # ZDARMA pro všechny
Chcete-li tyto problémy vyřešit, C # také nabízí obecné třídy kolekce. Obecná kolekce nabízí lepší výkon během ukládání a načítání položek.
Co se naučíte:
Seznam C #
O ArrayList jsme se již dozvěděli v předchozích článcích. Seznam je v zásadě podobný seznamu ArrayList, jediným rozdílem je, že je seznam obecný. Seznam má jedinečnou vlastnost rozšiřování jeho velikosti, jak roste, podobně jako seznam polí.
Jak inicializovat seznam?
Seznam můžeme inicializovat následujícími způsoby:
//using List type for initialization List listInteger = new List(); //using IList type for initialization IList listString = new List();
Pokud se podíváte na výše uvedený příklad, uvidíte, že v prvním řádku jsme použili List k inicializaci celočíselného seznamu. Ale na druhém řádku jsme pro inicializaci seznamu řetězců použili IList. Pro svůj program můžete použít kterékoli z nich. Seznam je ve skutečnosti implementací rozhraní IList.
Jak přidat a vložit prvek do seznamu?
Podobně jako v ArrayList můžeme do seznamu přidat prvek pomocí metody Add (). Metoda add přijímá hodnotu datového typu jako argument.
Syntax
ListName.Add(DataType value);
Podívejme se na jednoduchý program pro přidání dat do seznamu a 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(); } }
Prvek lze také přidat přímo při inicializaci seznamu. Můžeme přímo přidat hodnotu do seznamu v době samotné inicializace, podobným způsobem, jako jsme to udělali během naší kapitoly Pole.
To lze přidat umístěním složených závorek za Seznam a poté zapsáním hodnoty do něj oddělené čárkami. Pojďme trochu změnit výše uvedený program, abychom mohli přidat hodnotu přímo během inicializace.
jak otevřít soubor XML ve Wordu
Náš program bude nyní vypadat takto:
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(); } }
Ve výše uvedeném programu jsme inicializovali hodnoty celočíselného seznamu na začátku během inicializace. Umožnilo nám to předat hodnotu přímo bez psaní metody Add () pro každou hodnotu. To je docela užitečné, pokud máme omezené kvantifikovatelné množství dat, které musíme vložit do seznamu.
Jak získat přístup k seznamu?
K jednotlivým položkám ze seznamu můžeme přistupovat pomocí indexu. Rejstřík lze předat do hranaté závorky za názvem seznamu.
Syntax
dataType Val = list_Name(index);
Pojďme se nyní podívat na jednoduchý program, jak získat data ze seznamu, který jsme vytvořili v našem předchozím 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); } }
Výstupem následujícího programu bude hodnota v indexu 1. Index začíná od 0, výstup bude:
dva
Řekněme, že chceme získat všechna data ze seznamu, můžeme to udělat pomocí smyčky pro každou nebo pro smyčku.
Pro každou smyčku
Pro každou smyčku můžeme použít všechna data ze seznamu.
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); } } }
Zde jsme procházeli seznamem pomocí pro každou smyčku deklarováním hodnoty proměnné. To umožní každé smyčce procházet seznamem, dokud v něm nebudou nějaká data.
Pro smyčku
Pro použití smyčky for musíme znát počet prvků přítomných uvnitř seznamu. Metodu Count () lze použít k získání počtu prvků.
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; iNěkdy možná budeme muset vložit nový prvek do seznamu. K tomu musíme použít metodu Insert () k přidání nové metody kdekoli v seznamu. Metoda insert přijímá dva argumenty, první je index, do kterého chcete vložit data, a druhý jsou data, která chcete vložit.
Syntaxe pro vložku je:
List_Name.Insert(index, element_to_be_inserted);
Nyní vložme prvek do seznamu, který jsme vytvořili dříve. Do výše uvedeného programu přidáme prohlášení o vložení a pokusíme se zjistit, jak to funguje:
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 Pokud provedeme výše uvedený program, výstup bude:
jeden
dva
3
Hodnota seznamu po vložení nové hodnoty
jeden
22
dva
3
Po smyčce for jsme přidali příkaz insert k vložení celého čísla 22 na index 1 v dříve definovaném seznamu. Poté jsme pro každou smyčku napsali a, abychom vytiskli všechny prvky, které jsou nyní v seznamu (po vložení prvních dat).
Z výstupu jasně vidíme, že všechny prvky seznamu byly posunuty dopředu, aby se uvolnil prostor pro nový prvek v indexu 1. Index 1 má nyní 22 jako prvek a předchozí prvek v indexu 1, tj. 2, se posunul na další index a tak dále.
Jak odebrat prvek ze seznamu?
Někdy můžeme také požadovat odebrání položek ze seznamu. C # nabízí dvě různé metody. Tyto dvě metody jsou Remove () a RemoveAt (). Odebrat se používá k odebrání určitého prvku ze seznamu a RemoveAt se používá k odebrání libovolného prvku přítomného v daném indexu.
Podívejme se na syntaxi.
Syntax
Remove(Element name); RemoveAt(index);
Nyní přidejme k předchozímu kódu příkaz Odebrat a uvidíme, co se stane.
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 Výstupem výše uvedeného programu bude:
jeden
dva
3
Odebrání hodnoty ze seznamu
jeden
3
Ve výše uvedeném programu jsme použili metodu remove k odebrání prvku 2 ze seznamu. Jak můžete vidět na výstupu po provedení metody Remove, seznam již neobsahuje prvek, který jsme odebrali.
Podobně můžeme použít i metodu RemoveAt. Nahraďme metodu Remove ve výše uvedeném programu metodou RemoveAt () a předejme indexové číslo jako parametr.
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 Výstupem výše uvedeného programu bude:
otevřená hashovací tabulka adresování c ++
jeden
dva
3
Odebrání hodnoty ze seznamu
jeden
dva
Ve výše uvedeném programu můžete jasně vidět, že jsme odstranili prvek přítomný v indexu 2, místo abychom odstranili celé číslo 2. Proto v závislosti na požadavku lze k odebrání určitého prvku z a použít odebrat () nebo RemoveAt (). seznam.
Slovník C #
Slovník v C # je podobný slovníku, který máme v jakémkoli jazyce. Zde také máme sbírku slov a jejich významů. Slova jsou známá jako klíčová a jejich významy nebo definici lze definovat jako hodnoty.
Slovník přijímá dva argumenty, první je klíčový a druhý hodnotový. Lze jej inicializovat pomocí proměnné třídy Dictionary nebo rozhraní IDictionary.
Syntaxe slovníku je:
Dictionary
Podívejme se na jednoduchý program pro inicializaci slovníku:
Dictionary data = new Dictionary();
Ve výše uvedeném programu můžete jasně vidět, že jsme inicializovali data slovníku s klíčem i hodnotou jako řetězec. Pro klíče a hodnoty však můžete použít jakýkoli pár datových typů. Například, pokud změníme výše uvedený příkaz tak, aby obsahoval jiný datový typ, bude také správný.
Dictionary data = new Dictionary();
Datový typ uvnitř úhlové závorky je pro klíče a hodnoty. Jakýkoli datový typ si můžete ponechat jako klíč a hodnotu.
Jak přidat do slovníku klíče a hodnoty?
Viděli jsme, jak můžeme inicializovat slovník. Nyní přidáme klíče a jejich hodnoty do slovníku. Slovník je velmi užitečný, když chcete přidat různá data a jejich hodnoty do seznamu. Metodu Add () lze použít k přidání dat do slovníku.
Syntax
DictionaryVariableName.Add(Key, Value);
Nyní přidejme do výše uvedeného programu příkaz Přidat pro přidání klíčů a hodnot do slovníku.
Program
class Program { static void Main(string() args) { Dictionary dctn = new Dictionary(); dctn.Add('one', 'first'); dctn.Add('two', 'second'); dctn.Add('three', 'Third'); } }
Ve výše uvedeném programu jsme použili metodu Add () k přidání klíče a hodnot do slovníku. První parametr předaný metodě Add () je klíč a druhý parametr je hodnota klíče.
Jak získat přístup ke klíčům a hodnotám ze slovníku?
Jak je popsáno v našem kurzu v seznamu, můžeme také přistupovat k prvkům ze slovníku několika různými způsoby. Zde probereme několik důležitých způsobů, jak k nim můžeme získat přístup. Budeme diskutovat o smyčce, o každé smyčce a indexu pro přístup k datovým položkám.
Index lze použít pro přístup ke konkrétním hodnotám ze seznamu.
Pro smyčku lze použít pro přístup nebo načtení všech prvků ze slovníku, ale k zastavení smyčky vyžaduje velikost slovníku. Pro každou smyčku je flexibilnější, může načíst všechna přítomná data ze slovníku, aniž by vyžadovala velikost slovníku.
Používání indexování
Prvek z indexu lze pro přístup k prvku použít podobně jako pole, základní rozdíl spočívá v tom, že místo indexu potřebujeme klíče pro přístup k hodnotám.
Syntax
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(); } }
Výstupem výše uvedeného programu bude:
druhý
Použití pro smyčku pro přístup k prvku
Smyčku for lze použít pro přístup ke všem prvkům slovníku. Ale také potřebuje získat počet prvků uvnitř slovníku pro požadovanou počet iterací.
jaké desktopové virtuální stroje běží na Windows os
Přidáme smyčku for k výše uvedenému programu, abychom získali všechny hodnoty ze slovníku.
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 Výstupem výše uvedeného programu bude:
Prvek na klíči: jedna a jeho hodnota je: první
Prvek na klíči: dva a jeho hodnota je: sekunda
Prvek na klíči: tři a jeho hodnota je: Třetí
Ve výše uvedeném programu jsme k získání klíče v daném indexu použili metodu ElementAt (), poté jsme stejný klíč použili k načtení dat hodnoty klíče. Smyčka for prochází všemi daty ve slovníku. Vlastnost Count byla použita k získání velikosti slovníku pro iteraci.
Používání smyčky For-each
Podobně jako pro smyčku, můžeme také použít pro každou smyčku.
Podívejme se na výše uvedený program se smyčkou pro každou.
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(); } }
Výstupem výše uvedeného programu bude:
Klíč je: jeden - hodnota je: první
Klíč je: dva - hodnota je: druhá
Klíč je: tři - hodnota je: třetí
Výše uvedený program používá k deklaraci proměnné KeyValuePair, poté iterujeme každou dvojici klíč-hodnota ve slovníku a vytiskneme ji do konzoly.
Jak ověřit přítomnost dat ve slovníku?
Někdy musíme ověřit, zda ve slovníku existuje určitý klíč nebo hodnota, či nikoli. Můžeme to ověřit pomocí dvou metod, tj. ContainsValue () a ContainsKey (), abychom zkontrolovali existující klíč nebo hodnotu uvnitř slovníku.
Obsahuje metodu, která se používá k ověření, zda je daná hodnota ve slovníku nebo ne. Metoda ContainsKey se používá ke kontrole, zda daný klíč ve slovníku existuje nebo ne.
Syntax
Dictionary_Name.ContainsValue(Value); Dictionary_Name.ContainsKey(Key);
Pojďme napsat jednoduchý program k ověření pomocí metody Contains a 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(); } }
Výstupem výše uvedeného programu bude:
Klíč je k dispozici: True
K dispozici je hodnota čtyři: False
Ve výše uvedeném programu jsme nejprve použili metodu ContainsKey k ověření, zda je daný klíč ve slovníku. Protože je klíč ve slovníku, metoda vrátí hodnotu true. Potom pomocí ContainsValue určíme, zda je daná hodnota přítomna nebo ne. Protože hodnota „čtyři“ není ve slovníku, vrátí se false.
Jak odebrat prvek ze slovníku?
Může nastat doba, kdy budeme potřebovat odstranit určitý pár klíč – hodnota ze slovníku, abychom splnili určitou programovací logiku. Odebrat metodu lze použít k odebrání libovolného páru ze slovníku na základě klíče.
Syntax
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(); } }
Výstupem výše uvedeného programu bude:
K dispozici jsou dva klíče: False
Ve výše uvedeném programu jsme do slovníku nejprve přidali pár klíč – hodnota. Poté jsme odebrali klíč ze slovníku a pomocí metody ContainsKey () jsme ověřili, zda pár klíč-hodnota již ve slovníku není.
Závěr
Seznam ukládá prvky konkrétního datového typu a roste s přidáváním položek. Může také ukládat více duplicitních prvků. K položkám v Seznamu můžeme snadno přistupovat pomocí indexu nebo smyček. Seznam je velmi užitečný při ukládání velkého množství dat.
Slovník se používá k ukládání párů klíč – hodnota. Zde musí být klíče jedinečné. Hodnoty ze slovníku lze načíst pomocí smyčky nebo indexu. Můžeme také ověřit klíče nebo hodnoty pomocí Contains metody.
=> Celý seriál C # školení najdete zde
Doporučené čtení
- Výukový program pro zpracování výjimek C # s příklady kódu
- Výukový program Python DateTime s příklady
- Výukový program pro funkce / metody C # s příklady kódu
- Výukový program SVN: Správa zdrojového kódu pomocí Subversion
- C # String Tutorial - Metody řetězců s příklady kódu
- Výukový program pro želvy SVN: Revize v úložišti kódů
- Výukový program pro Python Tuple s praktickými příklady
- Příkaz LS v Unixu s příklady