c collections arraylist
Ц # колекције су специјализоване класе за чување и измену података. У овом упутству ћете научити о колекцијама Ц # као што су АрраиЛист, ХасхТабле и СортедЛист са примерима:
Они служе у различите сврхе попут динамичке алокације меморије, процене несеквенцијалних података итд.
Све ове класе користе објектну класу која је основна класа за све остале типове података.
=> Овде погледајте комплетну серију Ц # тренинга
Шта ћете научити:
тражећи унапређење у узорку оцене
Ц # колекције и њихова употреба
Ц # АрраиЛист
АрраиЛист је део колекција у Ц #. Користи се за садржаје података било ког датог типа података. Сличан је низу у Ц #, али нема одређену величину. Његова величина се аутоматски повећава како се у њу додаје више елемената.
Како иницијализовати листу арраи-а?
АрраиЛист се може иницијализовати помоћу кључне речи „АрраиЛист“.
ArrayList arrList = new ArrayList();
Како додати елементе у листу низова?
Можете додати једну ставку на листу низова помоћу методе Адд () и низа елемената или више елемената из друге колекције помоћу методе АддРанге ().
Пример:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; using System.Collections; namespace ConsoleApp1 { class Program { static void Main(string() args) { ArrayList arrList = new ArrayList(); arrList.Add(7896); arrList.Add('Seven'); Console.ReadLine(); } } }
Овде можете видети да смо користили методу АрраиЛист.Адд (). Као што можете приметити, додали смо оба цела броја као и низ у исту листу низова. То је могуће јер је листа низова генеричког типа података, тј. Може садржати елемент било ког датог типа података.
Како приступити елементу са арраиЛист-а?
Елементу листе низа може се приступити слично низу, тј. Коришћењем индекса. Али како је то генерички тип, прво га морамо пребацити на одговарајући тип података или треба да користимо кључну реч вар док приступамо вредности са листе низова.
Пример:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; using System.Collections; namespace ConsoleApp1 { class Program { static void Main(string() args) { ArrayList arrList = new ArrayList(); arrList.Add(7896); arrList.Add('Seven'); //casted and retrieved data int first_index = (int)arrList(0); string second_index = (string)arrList(1); Console.WriteLine('The first index value is : ' + first_index); Console.WriteLine('The second index value is : ' + second_index); Console.ReadLine(); } } }
У горњем примеру, податке смо преузели помоћу индекса листе низова, а затим смо их пребацили у одговарајући тип података. Резултати су затим одштампани на конзоли као излаз.
Излаз за горњи програм биће:
Оутпут
Прва вредност индекса је: 7896
Друга вредност индекса је: Седам
Како уметнути елемент у листу низа?
За уметање елемента у АрраиЛист у одређеној тачки или индексу. користи се метода Инсерт ().
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; using System.Collections; namespace ConsoleApp1 { class Program { static void Main(string() args) { ArrayList arrList = new ArrayList(); arrList.Add(7896); arrList.Add('Seven'); //casted and retrieved data int first_index = (int)arrList(0); string second_index = (string)arrList(1); Console.WriteLine('The first index value is : ' + first_index); Console.WriteLine('The second index value is : ' + second_index); arrList.Insert(1, 'Eight'); second_index = (string)arrList(1); Console.WriteLine('The second index value is : ' + second_index); Console.ReadLine(); } } }
Стога смо уметнули нови низ у индекс 1 помоћу методе инсерт (). Дакле, ако покренемо горњи програм, добићемо следећи излаз:
Оутпут
Прва вредност индекса је: 7896
Друга вредност индекса је: Седам
Друга вредност индекса је: Осам
Како уклонити елемент са АрраиЛист-а?
Елемент се може уклонити са АрраиЛист методом Ремове (). Метода Ремове прихвата параметар, тј. Вредност коју треба уклонити из низа.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; using System.Collections; namespace ConsoleApp1 { class Program { static void Main(string() args) { ArrayList arrList = new ArrayList(); arrList.Add(7896); arrList.Add('Seven'); //casted and retrieved data int first_index = (int)arrList(0); string second_index = (string)arrList(1); Console.WriteLine('The first index value is : ' + first_index); Console.WriteLine('The second index value is : ' + second_index); arrList.Insert(1, 'Eight'); second_index = (string)arrList(1); Console.WriteLine('The second index value is : ' + second_index); arrList.Remove(7896); var data = arrList(0); Console.WriteLine('The value at 0 index is : ' + data); Console.ReadLine(); } } }
Начин уклањања уклања задату вредност са листе. Када се вредност уклони из датог индекса, следећа вредност се помера за један индекс нагоре да би попунила празнину. Како уклањамо 0 индекса, вредност из индекса 1 ће се померити и попунити празнину на 0.
Резултат следећег програма биће:
Оутпут
Прва вредност индекса је: 7896
Друга вредност индекса је: Седам
Друга вредност индекса је: Осам
Вредност у индексу 0 је: Осам
Како уклонити елемент листе помоћу индекса?
Корисник може уклонити елемент листе из одређеног индекса помоћу методе РемовеАт (). РемовеАт () прихвата један параметар са индексним бројем из којег елемент треба уклонити. Слично методи Уклањање, уклањањем елемента из средине потиснуће следећи елемент за помицање један корак нагоре да попуни празнину.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; using System.Collections; namespace ConsoleApp1 { class Program { static void Main(string() args) { ArrayList arrList = new ArrayList(); arrList.Add(7896); arrList.Add('Seven'); //casted and retrieved data int first_index = (int)arrList(0); string second_index = (string)arrList(1); Console.WriteLine('The first index value is : ' + first_index); Console.WriteLine('The second index value is : ' + second_index); arrList.Insert(1, 'Eight'); second_index = (string)arrList(1); Console.WriteLine('The second index value is : ' + second_index); arrList.RemoveAt(1); var data = arrList(1); Console.WriteLine('The value at 1 index is : ' + data); Console.ReadLine(); } } }
У горњем примеру користили смо РемовеАт за уклањање индекса 1. Дакле, елемент у индексу 2 би требало да се помери у индекс 1 да би заменио јаз.
Резултат следећег програма биће:
Оутпут
Прва вредност индекса је: 7896
Друга вредност индекса је: Седам
Друга вредност индекса је: Осам
Вредност код 1 индекса је: Седам
Како сортирати и преокренути листу низова?
АрраиЛист нуди две различите методе за сортирање и обрнуте операције. Постоји само један услов, тј. Сви елементи унутар листе низова треба да имају исти тип података за поређење са упоређивачем или ће у супротном доћи до грешке у извршавању.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; using System.Collections; namespace ConsoleApp1 { class Program { static void Main(string() args) { ArrayList arrList = new ArrayList(); arrList.Add(7); arrList.Add(4); arrList.Add(5); arrList.Add(1); arrList.Add(3); Console.WriteLine('Original Array List'); foreach (var v in arrList) { Console.Write(v + ' '); } //sorting an array list Console.WriteLine(); Console.WriteLine('Sorted Array List'); arrList.Sort(); foreach (var srt in arrList) { Console.Write(srt + ' '); } //Reversing an array list Console.WriteLine(); Console.WriteLine('Reversed Array List'); arrList.Reverse(); foreach (var rvrs in arrList) { Console.Write(rvrs + ' '); } Console.ReadLine(); } } }
У горе наведеном програму прво смо креирали листу низова са целобројним типом података, а затим смо методу сортирања користили за сортирање листе и обрнуту методу за обртање сортиране листе.
Дакле, излаз следеће листе биће:
Оутпут
Оригинална листа низова
7 4 5 1 3
Сортирана листа низова
1 3 4 5 7
Обрнута листа низова
7 5 4 3 1
Ц # ХасхТабле
Простор имена Систем.Цоллецтионс у Ц # садржи таблицу хеш-формата која је прилично слична Речнику. Хасхтабле чува податке у облику парова кључ / вредност.
То чини интерно интерним додељивањем хеш кода хеш кључу и сваки пут када се приступи подацима подудара се хеш код са хеш кључем за преузимање података. Свака ставка у табели имаће пар кључ / вредност
Како иницијализовати ХасхТабле?
ХасхТабле се може покренути употребом кључне речи ХасхТабле, а затим креирањем њене инстанце.
Hashtable hashtbl = new Hashtable();
Како додати елементе у расправну таблицу?
Елементи се могу додати у ХасхТабле помоћу методе Адд (). Омогућава корисницима да додају ставку са њеним кључем и вредношћу. Није важно описати тип података кључа или вредности. Док додајете елементе у ХасхТабле, требате имати на уму да кључеви не могу садржати нулу чије вредности могу бити нулл.
ХасхТабле.Адд (тастери, вредности);
Пример:
class Program { static void Main(string() args) { Hashtable hashtbl = new Hashtable(); hashtbl.Add('Number',1); hashtbl.Add('Car', 'Ferrari'); hashtbl.Add(8, 'eight'); } }
Као што видите, додали смо различите типове података као кључеве и вредности.
Како приступити елементима присутним у ХасхТабле-у?
Вредност било ког кључа се може добити из табеле Хасхтабле помоћу индексера. Али индексатор такође захтева кључ за приступ и преузимање вредности из табеле.
Хајде да додамо мали исечак кода у горњи програм за преузимање вредности:
class Program { static void Main(string() args) { Hashtable hashtbl = new Hashtable(); hashtbl.Add('Number',1); hashtbl.Add('Car', 'Ferrari'); hashtbl.Add(8, 'eight'); int value1 = (int)hashtbl('Number'); String value2 = (string)hashtbl('Car'); String value3 = (string)hashtbl(8); Console.WriteLine(value1); Console.WriteLine(value2); Console.WriteLine(value3); Console.ReadLine(); } }
Сада ако извршимо ово, произвешће се следећи излаз:
један
феррари
осам
У горе наведеном програму дали смо вредност свих кључева за дати тип података како бисмо уклонили било какву грешку у компилацији која се може догодити. То је зато што, као генеричка колекција, Хасхтабле не садржи информације о типу података било ког свог садржаја, тј. Кључевима и вредностима.
Стога, ако директно покушамо да добијемо компајлер података, збунићемо се око типа података и избацићемо грешку.
Како уклонити елемент из хештаблета?
Рецимо да желимо да уклонимо одређени пар кључ / вредност са таблице хеш-табле. Да бисмо то постигли морамо користити методу Ремове () коју нуде колекције. Метода Ремове трајно брише задати пар кључ / вредност из хештаблета.
Уклони (кључ);
Додајмо методу Ремове у горњи програм да бисмо стекли идеју:
class Program { static void Main(string() args) { Hashtable hashtbl = new Hashtable(); hashtbl.Add('Number',1); hashtbl.Add('Car', 'Ferrari'); hashtbl.Add(8, 'eight'); int value1 = (int)hashtbl('Number'); String value2 = (string)hashtbl('Car'); String value3 = (string)hashtbl(8); Console.WriteLine(value1); Console.WriteLine(value2); Console.WriteLine(value3); //now we remove a key hashtbl.Remove(8); //Lets try to find the remove key now String valueRemoved = (string)hashtbl(8); Console.WriteLine('The value of the given key is :'+valueRemoved); Console.ReadLine(); } }
Резултат горњег програма биће следећи.
један
Феррари
осам
Вредност датог кључа је:
Не, вредност се исписује на конзоли пошто смо уклонили кључ из хештаблета. Стога је вредност низа из валуеРемовед нулл.
Ако желите да уклоните све из хештабле-а, тада нам Ц # пружа још један метод под називом Цлеар (). Метода Ремове брише један по један пар кључ / вредност, док метода Цлеар брише све из хеш-мапе.
Погледајмо програм у наставку да бисмо то урадили:
ангуларјс интервју питања и одговори за искусне у .нет-у
class Program { static void Main(string() args) { Hashtable hashtbl = new Hashtable(); hashtbl.Add('Number',1); hashtbl.Add('Car', 'Ferrari'); hashtbl.Add(8, 'eight'); int value1 = (int)hashtbl('Number'); String value2 = (string)hashtbl('Car'); String value3 = (string)hashtbl(8); Console.WriteLine(value1); Console.WriteLine(value2); Console.WriteLine(value3); //now we remove a key hashtbl.Remove(8); //Lets try to find the remove key now String valueRemoved = (string)hashtbl(8); Console.WriteLine('The value of the given key is :'+valueRemoved); // clearing all data from the HashTable hashtbl.Clear(); Console.ReadLine(); } }
Горњи програм ће уклонити све елементе из хештабле-а и учинит ће га празним.
како створити нову јава датотеку у ецлипсе-у
Остале важне методе које нуди Хасхтабле су ЦонтаинсКеи () и ЦонтаинсВалуе (). Обе ове методе прихватају један аргумент који је Кључ или вредност и враћају логичку вредност. Дакле, ако је параметар прослеђен овом методом присутан у хешблебу, тада ће вратити истинску вредност, а ако није присутан, биће враћен фалсе.
Ц # СортедЛист
Као што и само име говори, СортедЛист садржи сортиране податке у растућем редоследу. Сличан је Хасхтабле-у јер садржи сличан пар кључ / вредност. Сви тастери уметнути или додати на СортедЛист аутоматски се уређују у растућем редоследу.
Како иницијализовати сортирану листу?
СортедЛист се може покренути употребом кључне речи СортедЛист и креирањем инстанце објекта за њу.
SortedList sortedList = new SortedList();
Објекат се затим може користити за извођење операција помоћу својства и метода СортедЛист.
Како додати елемент на сортирану листу?
Можете додати елемент у СортедЛист помоћу методе Адд (). СортедЛист захтева да додате кључ и вредност. Кључеве и вредности можете додати у било којем редоследу који желите, а сортирана листа ће поредати све додате елементе у растућем редоследу.
class Program { static void Main(string() args) { SortedList sortedList = new SortedList(); sortedList.Add(2, 'Two Pineapples'); sortedList.Add(4, 'Four Apples'); sortedList.Add(3, 'Three Lemons'); sortedList.Add(5, 'Five Mangoes'); sortedList.Add(1, 'One Tree'); Console.ReadLine(); } }
У горњем програму можете видети да смо цели број додали као кључ, а затим стринг као вредности. Можете додати било који тип података како желите и којим редоследом желите. СортедЛист ће га распоредити у растућем редоследу.
Слично ХасхТабле-у, кључеви не могу бити нулл и сви кључеви би требали имати исти тип података за поређење, иначе ће доћи до грешке у компилацији.
Сортирана листа сортира елемент сваки пут када их додате. Дакле, чак и ако додате било који елемент након што је сортирање завршено, он ће поново сортирати и додати елемент у његов одговарајући индекс.
Како приступити елементима са сортиране листе?
Вредности на Сортираној листи може се приступити помоћу тастера.
Додајмо једноставан код да дохватимо вредност са СортедЛист-а описаног у претходном примеру:
class Program { static void Main(string() args) { SortedList sortedList = new SortedList(); sortedList.Add(2, 'Two Pineapples'); sortedList.Add(4, 'Four Apples'); sortedList.Add(3, 'Three Lemons'); sortedList.Add(5, 'Five Mangoes'); sortedList.Add(1, 'One Tree'); string i = (string)sortedList(1); string j = (string)sortedList(5); string k = (string)sortedList(3); Console.WriteLine(i); Console.WriteLine(j); Console.WriteLine(k); Console.ReadLine(); } }
Резултат горе наведеног исечка кода биће:
Једно дрво
Пет манга
Три лимуна
У горњем исечку кода морамо да додамо вредност свих кључева за дати тип података да бисмо уклонили било какву грешку компилације која се може појавити са типом података вредности. То је учињено како би се осигурало да грешка компилације не буде бачена, чак и ако неки кључеви садрже различите типове података.
Како потврдити да ли дати кључ постоји на сортираној листи?
Постоје две уграђене методе тј. Садржи() и ЦонтаинсКеи () који нам помажу у утврђивању да ли одређени кључ постоји унутар сортедЛист. ЦонстаинсВалуе () је још једна метода која се користи за утврђивање да ли је одређена вредност присутна унутар колекције или не.
Погледајмо једноставан програм да бисмо сазнали више о овим методама.
class Program { static void Main(string() args) { SortedList sortedList = new SortedList(); sortedList.Add(2, 'Two Pineapples'); sortedList.Add(4, 'Four Apples'); sortedList.Add(3, 'Three Lemons'); sortedList.Add(5, 'Five Mangoes'); sortedList.Add(1, 'One Tree'); //boolean value for key 5 bool key = sortedList.ContainsKey(5); //boolean value for vlaue 'One Tree' bool val = sortedList.ContainsValue('One Tree'); //Boolean value for unavailable key bool unKey = sortedList.ContainsKey(25); //Boolean value for unavailable value bool unVal = sortedList.ContainsValue('some randome value'); Console.WriteLine('The sorted list contains 5 key :' + key); Console.WriteLine('The sorted list contains One Tree value :' + val); Console.WriteLine('The sorted list contains 25 key :' +unKey); Console.WriteLine('The sorted list contains some random value:' + unVal); Console.ReadLine(); } }
Резултат горе наведеног програма биће:
Сортирана листа садржи 5 кључева: Тачно
Сортирана листа садржи вредност једног дрвета: Тачно
Сортирана листа садржи 25 кључева: Нетачно
Сортирана листа садржи неку случајну вредност: Нетачно
У горе наведеном програму можете јасно видети да ако је вредност или кључ присутан унутар Сортиране листе, тада се враћа истинска вредност, а ако је одсутна враћа се лажна вредност.
Како уклонити елемент са сортиране листе?
Сортирана листа нуди методе Ремове () и РемовеАт () за брисање било ког елемента који се налази унутар Сортиране листе. Ремове прихвата један аргумент са именом кључа, а РемовеАт такође прихвата један аргумент, али са индексом.
Обе ове методе уклањају било који елемент присутан у Сортираној листи на основу аргумента.
Погледајмо једноставан код да бисмо га јасније разумели.
class Program { static void Main(string() args) { SortedList sortedList = new SortedList(); sortedList.Add(2, 'Two Pineapples'); sortedList.Add(4, 'Four Apples'); sortedList.Add(3, 'Three Lemons'); sortedList.Add(5, 'Five Mangoes'); sortedList.Add(1, 'One Tree'); //The Remove() method accepts key as argument and removes both the key and the value sortedList.Remove(1); //Now we will check if the key is present bool rmvKey = sortedList.ContainsKey(1); Console.WriteLine('The presence if the key is: ' + rmvKey); //The RemoveAt() method acceots index as argument and remove any key and value present at that index sortedList.RemoveAt(3); Console.ReadLine(); } }
Резултат горе наведеног програма биће:
Присуство ако је кључ: Нетачно
У горе наведеном програму прво смо користили методу Ремове да бисмо уклонили пар кључ / вредност помоћу кључа. Ово ће уклонити било који пар кључ / вредност који се подудара са кључем наведеним у аргументу. Затим смо методом ЦонтаинсКеи проверили да уклоњени кључ више не постоји на листи Сортед.
У следећем реду смо користили методу РемовеАт која уклања елементе помоћу индекса. Стога, као што смо раније разговарали, када се одређени елемент уклони из индекса, други елемент ће се померити горе да би преуредио и одржао структуру сортиране листе.
Закључак
Колекције су наменске класе присутне на програмском језику Ц # за чување и рад са подацима. Користе се за обављање одређених радњи, тј. За креирање динамичких листа, обртање, сортирање итд. На датом скупу података.
У овом упутству смо сазнали за АрраиЛист који је у неким аспектима сличан низу, али нема унапред дефинисану величину. Такође смо сазнали за ХасхТабле који податке чува у паровима кључ / вредност. Било која вредност се може добити помоћу кључа.
Такође смо сазнали за сортирану листу која је слична ХасхТабле-у, али аутоматски сортира све податке који се у њој налазе, у растућем редоследу на основу кључева.
Подаци унутар Сортиране листе су увек у узлазном редоследу, тј. Чак и ако уклоните одређени елемент из средине или додате нови елемент на Сортирану листу, он ће аутоматски поређати све податке у растућем редоследу.
Узорак кода
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using SeleniumFrameWork.FrameworkEssentials; using SeleniumFrameWork.FrameWorkSupportModules; namespace ConsoleApp1 { class Program { static void Main(string() args) { /* Array List Code */ ArrayList arrList = new ArrayList(); arrList.Add(7); arrList.Add(4); arrList.Add(5); arrList.Add(1); arrList.Add(3); Console.WriteLine('Original Array List'); foreach (var v in arrList) { Console.Write(v + ' '); } //sorting an array list Console.WriteLine(); Console.WriteLine('Sorted Array List'); arrList.Sort(); foreach (var srt in arrList) { Console.Write(srt + ' '); } //Reversing an array list Console.WriteLine(); Console.WriteLine('Reversed Array List'); arrList.Reverse(); foreach (var rvrs in arrList) { Console.Write(rvrs + ' '); } /* HashTable Code */ Hashtable hashtbl = new Hashtable(); hashtbl.Add('Number', 1); hashtbl.Add('Car', 'Ferrari'); hashtbl.Add(8, 'eight'); int value1 = (int)hashtbl('Number'); String value2 = (string)hashtbl('Car'); String value3 = (string)hashtbl(8); Console.WriteLine(value1); Console.WriteLine(value2); Console.WriteLine(value3); //now we remove a key hashtbl.Remove(8); //Lets try to find the remove key now String valueRemoved = (string)hashtbl(8); Console.WriteLine('The value of the given key is :' + valueRemoved); // clearing all data from the HashTable hashtbl.Clear(); /* Sorted List Code */ SortedList sortedList = new SortedList(); sortedList.Add(2, 'Two Pineapples'); sortedList.Add(4, 'Four Apples'); sortedList.Add(3, 'Three Lemons'); sortedList.Add(5, 'Five Mangoes'); sortedList.Add(1, 'One Tree'); string i = (string)sortedList(1); string j = (string)sortedList(5); string k = (string)sortedList(3); Console.WriteLine(i); Console.WriteLine(j); Console.WriteLine(k); //boolean value for key 5 bool key = sortedList.ContainsKey(5); //boolean value for vlaue 'One Tree' bool val = sortedList.ContainsValue('One Tree'); //Boolean value for unavailable key bool unKey = sortedList.ContainsKey(25); //Boolean value for unavailable value bool unVal = sortedList.ContainsValue('some randome value'); Console.WriteLine('The sorted list contains 5 key :' + key); Console.WriteLine('The sorted list contains One Tree value :' + val); Console.WriteLine('The sorted list contains 25 key :' +unKey); Console.WriteLine('The sorted list contains some randome value:' + unVal); //The Remove() method accepts key as argument and removes both the key and the value sortedList.Remove(1); //Now we will check if the key is present bool rmvKey = sortedList.ContainsKey(1); Console.WriteLine('The presence if the key is: ' + rmvKey); //The RemoveAt() method acceots index as argument and remove any key and value present at that index sortedList.RemoveAt(3); Console.ReadLine(); } } }
=> Овде потражите Једноставан водич за обуку за Ц #
Препоручено читање
- Водич за Питхон ДатеТиме са примерима
- Изрежи команду у Унику са примерима
- Синтакса наредбе Уник Цат, опције са примерима
- Употреба курсора у МонгоДБ са примерима
- Лс наредба у Унику са примерима
- МонгоДБ метода сортирања () са примерима
- Греп наредба у Унику са једноставним примерима
- Употреба ОбјецтИд () у МонгоДБ са примерима