c list dictionary tutorial with code examples
Овај водич објашњава списак Ц # и речник са примерима. Научићете како да иницијализујете, попуните и приступите елементима у речнику и листи Ц #:
У нашем ранијем водичу о Ц # колекцијама сазнали смо о врстама колекција присутних у Ц # попут АрраиЛист, Хасхтабле, Стацк, СортедЛист итд. Оно што је заједничко међу овим врстама колекција је да могу да чувају било коју врсту ставки података.
Ово се чини прилично корисним за чување различитих типова података унутар једног ентитета колекције, али лоша страна је та што је приликом преузимања података из колекције потребно преношење података на одговарајући тип података. Без преноса података, програм ће избацити рунтиме изузетак и може ометати апликацију.
=> БЕСПЛАТНИ Водичи за обуку за Ц # за све
Да би решио ове проблеме, Ц # такође нуди генеричке класе сакупљања. Генеричка колекција нуди боље перформансе током складиштења и преузимања предмета.
Шта ћете научити:
Листа Ц #
О АрраиЛист-у смо већ сазнали у претходним чланцима. У основи, Листа је слична АрраиЛист-у, једина разлика је у томе што је Листа генеричка. Листа има јединствено својство да проширује своју величину како расте, слично листи низова.
Како иницијализовати листу?
Списак можемо иницијализовати на следеће начине:
//using List type for initialization List listInteger = new List(); //using IList type for initialization IList listString = new List();
Ако погледате горњи пример, можете видети да смо у првом реду користили Лист за иницијализацију целобројне листе. Али у другом реду смо користили ИЛист за иницијализацију листе низова. Било шта од тога можете користити за свој програм. Листа је заправо имплементација интерфејса ИЛист.
Како додати и убацити елемент на листу?
Слично АрраиЛист-у, можемо додати елемент на Листу методом Адд (). Метода додавања прихвата вредност типа података као аргумент.
Синтакса
ListName.Add(DataType value);
Погледајмо једноставан програм за додавање података на листу и ИЛист.
Програм:
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(); } }
Елемент се такође може додати директно током иницијализације листе. Вредност можемо директно додати на листу у време саме иницијализације, на сличан начин као што смо то учинили током нашег поглавља Низови.
То се може додати постављањем коврџавих заграда након Листе, а затим записивањем вредности унутар ње одвојених зарезима. Променимо мало горњи програм тако да можемо додати вредност директно током иницијализације.
врста тестирања у развоју софтвера
Дакле, наш програм ће сада изгледати овако:
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(); } }
У горе наведеном програму, иницијализовали смо вредности целобројне листе на почетку током иницијализације. Омогућило нам је да вредност проследимо директно без писања методе Адд () за сваку вредност. Ово је врло корисно ако имамо ограничену количински мерљиву количину података које треба да ставимо на листу.
Како приступити листи?
Помоћу индекса можемо приступити појединачним ставкама са листе. Индекс се може пренети у углату заграду након имена листе.
Синтакса
dataType Val = list_Name(index);
Сада, погледајмо једноставан програм за добијање података са листе коју смо креирали у претходном програму.
Програм
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); } }
Излаз следећег програма биће вредност индекса 1. Индекс почиње од 0, а излаз ће бити:
два
Рецимо сада да желимо да добијемо све податке са Листе, то можемо да урадимо помоћу петље за сваку или петље.
За сваку петљу
За сваку петљу можемо да добијемо све податке са листе.
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); } } }
Овде смо прегледали листу користећи сваку петљу декларисањем вредности променљиве. То ће омогућити сваку петљу кроз листу док у њој нема неких података.
Фор Лооп
Да бисмо користили петљу фор, морамо знати број елемената присутних унутар листе. За израчунавање броја елемената може се користити метода Цоунт ().
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Понекад ће нам можда требати и да убацимо нови елемент у листу. Да бисмо то урадили, треба да користимо методу Инсерт () за додавање нове методе било где унутар листе. Метода уметања прихвата два аргумента, први је индекс у који желите да убаците податке, а други су подаци које желите да убаците.
Синтакса за уметак је:
List_Name.Insert(index, element_to_be_inserted);
Сада, убацимо елемент у листу коју смо раније креирали. У претходни програм ћемо додати изјаву за уметање и покушаћемо да видимо како то функционише:
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 Ако извршимо горњи програм, излаз ће бити:
1
два
3
Вредност листе након уметања нове вал
1
22
два
3
Након фор петље, додали смо изјаву инсерт да бисмо уметнули цели број 22 у индекс 1 на претходно дефинисану листу. Затим смо за сваку петљу написали знак за испис свих елемената који су сада присутни на листи (Након уметања првих података).
Из резултата можемо јасно видети да су сви елементи листе померени унапред како би се уступило место новом елементу у индексу 1. Индекс 1 сада има 22 као елемент, а претходни елемент у индексу 1, тј. следећи индекс и тако даље.
Како уклонити елемент са листе?
Понекад ћемо можда захтевати и уклањање предмета са листе. Да бисте то урадили, Ц # нуди две различите методе. Ове две методе су Ремове () и РемовеАт (). Ремове се користи за уклањање одређеног елемента са листе, а РемовеАт се користи за уклањање било ког елемента присутног у датом индексу.
Погледајмо синтаксу.
Синтакса
Remove(Element name); RemoveAt(index);
Хајде сада да додамо изјаву Ремове у претходни код и да видимо шта ће се догодити.
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 Резултат горе наведеног програма биће:
1
два
3
Уклањање вредности са листе
1
3
У горе наведеном програму користили смо методу уклањања да бисмо уклонили елемент 2 са листе. Као што видите у излазу након извршавања методе Ремове, листа више не садржи елемент који смо уклонили.
Слично томе, можемо користити и методу РемовеАт. Заменимо методу Ремове у горњем програму методом РемовеАт () и проследимо индексни број као параметар.
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 Резултат горе наведеног програма биће:
1
два
3
Уклањање вредности са листе
1
два
У горе наведеном програму можете јасно видети да смо уклонили елемент присутан у индексу 2, уместо да уклонимо цели број 2. Дакле, у зависности од захтева, може се користити или Ремове () или РемовеАт () за уклањање одређеног елемента из листа.
Ц # речник
Речник на језику Ц # сличан је речнику који имамо на било ком језику. Овде такође имамо збирку речи и њихова значења. Речи су познате као кључне и њихово значење или дефиниција могу се дефинисати као вредности.
Речник прихвата два аргумента, први је кључни, а други вредност. Може се иницијализовати употребом променљиве било класе Дицтионари или ИДицтионари интерфејса.
Синтакса Речника је:
Dictionary
Погледајмо једноставан програм за иницијализацију речника:
Dictionary data = new Dictionary();
У горњем програму можете јасно видети да смо податке речника иницијализовали и кључем и вредношћу као низ. Али за кључеве и вредности можете користити било који пар типова података. На пример, ако горњу изјаву променимо тако да садржи другачији тип података, онда ће и она бити тачна.
Dictionary data = new Dictionary();
Тип података унутар угаоне заграде је за кључеве и вредности. Било који тип података можете задржати као кључ и вредност.
Како додати кључеве и вредности у речник?
Видели смо како можемо иницијализовати речник. Сада ћемо додати кључеве и њихове вредности у речник. Речник је веома користан када на листу желите да додате различите податке и њихове вредности. Метода Адд () се може користити за додавање података у речник.
Синтакса
DictionaryVariableName.Add(Key, Value);
Сад ћемо укључити изјаву Додај у горњи програм да бисмо додали кључеве и вредности у речник.
који је најбољи шпијунски софтвер за мобилне телефоне
Програм
class Program { static void Main(string() args) { Dictionary dctn = new Dictionary(); dctn.Add('one', 'first'); dctn.Add('two', 'second'); dctn.Add('three', 'Third'); } }
У горе наведеном програму користили смо методу Адд () за додавање кључа и вредности у речник. Први параметар прослеђен методи Адд () је кључ, а други параметар је вредност кључа.
Како приступити кључевима и вредностима из речника?
Као што је објашњено у нашем упутству на листи, елементима из речника такође можемо приступити на неколико различитих начина. Овде ћемо разговарати о неколико важних начина на које му можемо приступити. Разговараћемо о петљи, за сваку петљу и индексу за приступ ставкама података.
Индекс се може користити за приступ одређеним вредностима са листе.
Петља Фор се може користити за приступ или преузимање свих елемената из речника, али захтева величину речника да заустави петљу. Како је свака петља флексибилнија, она може да преузме све податке присутне из речника без потребе за величином речника.
Коришћење индексирања
Елемент из индекса може се користити слично као низ за приступ елементу, основна разлика је у томе што нам уместо индекса требају кључеви за приступ вредностима.
Синтакса
Dictionary_Name(key);
Програм
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(); } }
Резултат горе наведеног програма биће:
друго
Коришћење за петљу за приступ елементу
Петља фор се може користити за приступ свим елементима речника. Али такође треба да добије број елемента унутар речника за потребан број итерација.
Додајмо фор петљу у горњи програм да бисмо преузели све вредности из речника.
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 Резултат горе наведеног програма биће:
Елемент у кључу: један и његова вредност је: први
Елемент у кључу: два и његова вредност је: други
Елемент у кључу: три и његова вредност је: Трећи
У горе наведеном програму користили смо методу ЕлементАт () да бисмо добили кључ у датом индексу, затим смо исти кључ користили за преузимање података вредности кључа. Петља фор се понавља кроз све податке у речнику. Својство цоунт је коришћено за добијање величине речника за итерацију.
Коришћење Фор-Евери Лооп
Слично као за петљу, такође можемо користити и за сваку петљу.
Погледајмо горњи програм са петљом за сваку.
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(); } }
Резултат горе наведеног програма биће:
Кључ је: један - Вредност је: први
Кључ је: два - Вредност је: друго
Кључ је: три - Вредност је: треће
Горњи програм користи КеиВалуеПаир за декларацију променљиве, затим прелазимо кроз сваки од парова кључ / вредност у речнику и исписујемо то на конзолу.
Како потврдити присуство података у речнику?
Понекад морамо да проверимо да ли одређени кључ или вредност постоје у речнику или не. То можемо потврдити помоћу две методе, тј. ЦонтаинсВалуе () и ЦонтаинсКеи () да бисмо проверили постојећи кључ или вредност у речнику.
Метода Садржи се користи за потврђивање да ли је дата вредност присутна у речнику или не. Начин ЦонтаинсКеи користи се за проверу да ли дати кључ постоји у речнику или не.
Синтакса
Dictionary_Name.ContainsValue(Value); Dictionary_Name.ContainsKey(Key);
Напишимо једноставан програм за валидацију методом Цонтаинс и ЦонтаинсКеи.
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(); } }
Резултат горе наведеног програма биће:
Доступна је кључна: Тачно
Доступна је вредност четири: Фалсе
У горњем програму прво смо користили методу ЦонтаинсКеи да бисмо проверили да ли је дати кључ присутан у речнику. Како је кључ присутан у речнику, метода враћа труе. Затим користимо ЦонтаинсВалуе да одредимо да ли је дата вредност присутна или не. Како вредност „четири“ није присутна у речнику, вратиће вредност фалсе.
Како уклонити елемент из речника?
Можда ће бити времена када ћемо захтевати уклањање одређеног пара кључ / вредност из речника да бисмо испунили одређену програмску логику. Начин уклањања може се користити за уклањање било ког пара из речника на основу кључа.
Синтакса
Remove(key);
Програм
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(); } }
Резултат горе наведеног програма биће:
Кључна два су доступна: Фалсе
У горњем програму прво смо додали пар кључ / вредност у речник. Затим смо уклонили кључ из речника и користили смо методу ЦонтаинсКеи () за проверу ваљаности ако пар кључ / вредност више није присутан у речнику.
како написати узорак плана теста
Закључак
Листа чува елементе одређеног типа података и расте како се додају ставке. Такође може да ускладишти више дупликата елемената. Предметима унутар Списка можемо лако приступити помоћу индекса или петљи. Листа је веома корисна за чување велике количине података.
Речник се користи за чување парова кључ / вредност. Овде кључеви морају бити јединствени. Вредности из речника могу се добити помоћу петље или индекса. Такође можемо потврдити кључеве или вредности помоћу методе Садржи.
=> Овде погледајте целу серију Ц # тренинга
Препоручено читање
- Водич за руковање изузецима за Ц # са примерима кода
- Водич за Питхон ДатеТиме са примерима
- Водич за функције # методе и методе са примерима кода
- Водич за СВН: Управљање изворним кодом помоћу Субверзије
- Водич за Ц # низ - Методе низања са примерима кода
- Водич за корњаче СВН: Ревизије у спремишту кода
- Водич за Питхон Тупле са практичним примерима
- Лс наредба у Унику са примерима