c list dictionary tutorial with code examples
Aquest tutorial explica la llista i el diccionari C # amb exemples. Aprendreu a inicialitzar, omplir i accedir a elements al diccionari i llista C #:
En el nostre anterior tutorial sobre col·leccions C #, vam aprendre sobre els tipus de col·leccions presents a C #, com ara ArrayList, Hashtable, Stack, SortedList, etc. El més habitual entre aquests tipus de col·lecció és que poden emmagatzemar qualsevol tipus de document.
Això sembla bastant útil per emmagatzemar diferents tipus de dades dins d’una única entitat de recopilació, però l’inconvenient és que, mentre es recuperen dades de la col·lecció, es necessita la transmissió de dades al tipus de dades aplicable. Sense datacast, el programa generarà una excepció en temps d'execució i pot dificultar l'aplicació.
=> Tutorials de formació C # GRATU ForTS per a tothom
Per resoldre aquests problemes, C # també ofereix classes de col·lecció genèriques. Una col·lecció genèrica ofereix un millor rendiment durant l’emmagatzematge i la recuperació dels articles.
Què aprendreu:
Llista C #
Ja hem après sobre l’ArrayList en els articles anteriors. Bàsicament, una llista és similar a una ArrayList, l'única diferència és que la llista és genèrica. La llista té una propietat única d’ampliar la seva mida a mesura que creix, de manera similar a la llista de matrius.
Com inicialitzar una llista?
Podem inicialitzar una llista de les maneres següents:
//using List type for initialization List listInteger = new List(); //using IList type for initialization IList listString = new List();
Si mireu l’exemple anterior, podeu veure que a la primera línia hem utilitzat Llista per inicialitzar una llista sencera. Però a la segona línia, hem utilitzat IList per a la inicialització de la llista de cadenes. Podeu utilitzar-ne qualsevol per al vostre programa. La llista és realment la implementació de la interfície IList.
Com afegir i inserir un element a la llista?
De manera similar a ArrayList, podem afegir un element a la llista mitjançant el mètode Add (). El mètode add accepta el valor del tipus de dades com a argument.
Sintaxi
ListName.Add(DataType value);
Vegem un programa senzill per afegir dades a una llista i IList.
Programa:
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(); } }
L'element també es pot afegir directament durant la inicialització de la llista. Podem afegir directament el valor a la llista en el moment de la pròpia inicialització, de manera similar a la que ho vam fer durant el capítol Arrays.
Això es pot afegir col·locant claudàtors després de la llista i, tot seguit, escrivint el valor al seu interior separat per comes. Canviem una mica el programa anterior perquè puguem afegir el valor directament durant la inicialització.
quin dels següents no es troba en l'estat de la prova del sistema?
Per tant, ara el nostre programa serà:
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(); } }
Al programa anterior, vam inicialitzar els valors de la llista sencera a l'inici durant la inicialització. Ens va permetre passar el valor directament sense escriure el mètode Add () per a cada valor. Això és molt útil si tenim una quantitat quantificable limitada de dades que hem d’incloure dins d’una llista.
Com accedir a la llista?
Podem accedir a elements individuals de la llista mitjançant l’índex. L'índex es pot passar entre claudàtors després del nom de la llista.
Sintaxi
dataType Val = list_Name(index);
Ara fem una ullada a un programa senzill per obtenir les dades de la llista que vam crear al nostre programa anterior.
Programa
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); } }
La sortida del programa següent serà el valor de l’índex 1. L’índex comença a partir de 0, la sortida serà:
2
Ara, diguem que volem obtenir totes les dades de la llista, ho podem fer mitjançant el bucle per a cada bucle o per un bucle.
Per a cada bucle
Podem utilitzar per a cada bucle per obtenir totes les dades de la llista.
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); } } }
Aquí hem recorregut la llista utilitzant per a cada bucle declarant un valor variable. Això permetrà cada bucle de la llista fins que hi hagi algunes dades al seu interior.
Per a bucle
Per utilitzar el bucle, hem de conèixer el nombre d'elements presents a la llista. Es pot utilitzar el mètode Count () per obtenir el recompte de l'element.
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; iEn algun moment potser també caldrà inserir un element nou a la llista. Per fer-ho, hem d’utilitzar el mètode Insert () per afegir un mètode nou a qualsevol lloc de la llista. El mètode insert accepta dos arguments, el primer és l’índex on voleu inserir les dades i el segon són les dades que voleu inserir.
La sintaxi de la inserció és:
List_Name.Insert(index, element_to_be_inserted);
Ara, inserim un element a la llista que hem creat anteriorment. Afegirem una instrucció insert al programa anterior i intentarem veure com funciona:
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 Si executem el programa anterior, la sortida serà:
1
2
3
Valor de llista després d'inserir un valor nou
1
22
2
3
Després del bucle for, hem afegit la instrucció insert per inserir el nombre enter 22 a l'índex 1 a la llista definida prèviament. Després vam escriure un per a cada bucle per imprimir tots els elements presents a la llista (després d’inserir les primeres dades).
Podem veure clarament a partir de la sortida que tots els elements de la llista s’han desplaçat cap endavant per donar pas al nou element de l’índex 1. L’índex 1 ara té 22 com a element i l’element anterior de l’índex 1 és a dir, 2 s’ha desplaçat a el següent índex, etc.
Com treure un element de la llista?
En algun moment, també és possible que necessitem eliminar elements de la llista. Per fer-ho, C # ofereix dos mètodes diferents. Aquests dos mètodes són Remove () i RemoveAt (). Elimina s’utilitza per eliminar un determinat element de la llista i RemoveAt s’utilitza per eliminar qualsevol element present a l’índex donat.
Vegem la sintaxi.
Sintaxi
Remove(Element name); RemoveAt(index);
Ara, afegim instrucció Remove al codi anterior i veurem què passa.
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 La sortida del programa anterior serà:
1
2
3
S'està suprimint el valor de la llista
1
3
Al programa anterior, hem utilitzat el mètode remove per eliminar l'element 2 de la llista. Com podeu veure a la sortida un cop executat el mètode Remove, la llista ja no conté l'element que hem eliminat.
De la mateixa manera, també podem utilitzar el mètode RemoveAt. Substituïm el mètode Remove del programa anterior pel mètode RemoveAt () i passem el número d’índex com a paràmetre.
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 La sortida del programa anterior serà:
1
2
3
S'està suprimint el valor de la llista
1
2
exemple de combinació de tipus c ++
Al programa anterior, podeu veure clarament que hem eliminat l’element present a l’índex 2 en lloc d’eliminar l’enter 2. Per tant, depenent del requisit es pot utilitzar Remove () o RemoveAt () per eliminar un determinat element d’un llista.
Diccionari C #
El diccionari en C # és similar al diccionari que tenim en qualsevol idioma. Aquí també tenim una col·lecció de paraules i els seus significats. Les paraules es coneixen com a claus i els seus significats o definició es poden definir com a valors.
El diccionari accepta dos arguments, el primer és clau i el segon és el valor. Es pot inicialitzar mitjançant una variable de la classe Dictionary o de la interfície IDictionary.
La sintaxi del diccionari és:
Dictionary
Vegem un programa senzill per inicialitzar el diccionari:
Dictionary data = new Dictionary();
Al programa anterior, podeu veure clarament que hem inicialitzat les dades del diccionari amb la clau i el valor com a cadena. Però podeu utilitzar qualsevol parell de tipus de dades per a claus i valors. Per exemple, si canviem la declaració anterior per contenir un tipus de dades diferent, també serà correcta.
Dictionary data = new Dictionary();
El tipus de dades dins del claudàtor angular és per a claus i valors. Podeu mantenir qualsevol tipus de dades com a clau i valor.
Com afegir claus i valors a un diccionari?
Vam veure com podem inicialitzar un diccionari. Ara afegirem al diccionari les claus i els seus valors. El diccionari és molt útil quan voleu afegir dades diferents i els seus valors en una llista. El mètode Add () es pot utilitzar per afegir dades al diccionari.
Sintaxi
DictionaryVariableName.Add(Key, Value);
Ara, incloguem la sentència Add al programa anterior per afegir claus i valors al diccionari.
Programa
class Program { static void Main(string() args) { Dictionary dctn = new Dictionary(); dctn.Add('one', 'first'); dctn.Add('two', 'second'); dctn.Add('three', 'Third'); } }
Al programa anterior, hem utilitzat el mètode Add () per afegir la clau i els valors al diccionari. El primer paràmetre que es passa al mètode Add () és la clau i el segon paràmetre és el valor de la clau.
Com accedir a les claus i als valors des d’un diccionari?
Tal com es comenta al nostre tutorial de la llista, també podem accedir a elements del diccionari de diverses maneres. Aquí parlarem d'algunes de les maneres importants per accedir-hi. Discutirem per bucle, per a cada bucle i índex per accedir a elements de dades.
L'índex es pot utilitzar per accedir a valors específics de la llista.
For loop es pot utilitzar per accedir o recuperar tots els elements del diccionari, però requereix la mida del diccionari per aturar el bucle. Perquè cada bucle és més flexible, pot recuperar totes les dades presents del diccionari sense necessitar la mida del diccionari.
Utilització de la indexació
Un element de l’índex es pot utilitzar de manera similar a una matriu per accedir a l’element, la diferència bàsica és que en lloc d’índex necessitem claus per accedir als valors.
Sintaxi
Dictionary_Name(key);
Programa
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(); } }
La sortida del programa anterior serà:
segon
Utilització de bucle per accedir a l'element
El bucle for es pot utilitzar per accedir a tots els elements del diccionari. Però també ha d’obtenir el recompte de l’element dins del diccionari per a una sèrie d’iteracions necessàries.
Afegim bucle al programa anterior per recuperar tots els valors del diccionari.
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 La sortida del programa anterior serà:
com començar les proves d'automatització des de zero
L’element clau: one i el seu valor és: first
L'element de la clau: dos i el seu valor és: segon
L’element clau: tres i el seu valor és: Tercer
Al programa anterior, hem utilitzat el mètode ElementAt () per obtenir la clau en un índex donat, i després hem utilitzat la mateixa clau per recuperar les dades del valor de la clau. El bucle for recorre totes les dades del diccionari. S'ha utilitzat la propietat Count per obtenir la mida del diccionari per a la iteració.
Utilitzant per a cada bucle
De manera similar al bucle for, també podem utilitzar el de cada bucle.
Vegem el programa anterior amb el bucle per a cada un.
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(); } }
La sortida del programa anterior serà:
La clau és: un - El valor és: primer
La clau és: dos: el valor és: segon
La clau és: tres - El valor és: Tercer
El programa anterior utilitza KeyValuePair per declarar la variable i, a continuació, recorrem cadascun dels parells clau-valor del diccionari i l’imprimim a la consola.
Com es pot validar la presència de dades en un diccionari?
De vegades, hem de verificar si existeix o no una determinada clau o valor al diccionari. Podem validar-ho mitjançant dos mètodes, és a dir, ContainsValue () i ContainsKey () per comprovar si hi ha la clau o el valor existents al diccionari.
S'utilitza el mètode Contains per validar si el valor donat està present al diccionari o no. El mètode ContainsKey s’utilitza per comprovar si existeix o no una clau determinada al diccionari.
Sintaxi
Dictionary_Name.ContainsValue(Value); Dictionary_Name.ContainsKey(Key);
Escrivim un programa senzill per validar mitjançant el mètode Contains and 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(); } }
La sortida del programa anterior serà:
La clau està disponible: cert
El valor quatre està disponible: Fals
Al programa anterior, primer hem utilitzat el mètode ContainsKey per validar si la clau donada es troba dins del diccionari. Com que la clau està present al diccionari, el mètode torna cert. A continuació, fem servir ContainsValue per determinar si el valor donat és present o no. Com que el valor 'quatre' no es troba dins del diccionari, es tornarà fals.
Com treure un element d'un diccionari?
Pot haver-hi un moment en què haguem de retirar un determinat parell clau-valor del diccionari per complir certa lògica de programació. El mètode d'eliminació es pot utilitzar per eliminar qualsevol parell del diccionari basat en la clau.
Sintaxi
Remove(key);
Programa
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(); } }
La sortida del programa anterior serà:
Les dues claus estan disponibles: Fals
Primer, al programa anterior, hem afegit un parell clau-valor al diccionari. A continuació, vam treure una clau del diccionari i vam utilitzar el mètode ContainsKey () per validar si el parell clau-valor ja no està present al diccionari.
Conclusió
La llista emmagatzema elements del tipus de dades específic i creix a mesura que s’afegeixen elements. També pot emmagatzemar diversos elements duplicats. Podem accedir fàcilment als elements de la llista mitjançant índex o bucles. La llista és molt útil per emmagatzemar una gran quantitat de dades.
Un diccionari s’utilitza per emmagatzemar parells clau-valor. Aquí les claus han de ser úniques. Els valors del diccionari es poden recuperar mitjançant un bucle o un índex. També podem validar claus o valors mitjançant el mètode Contains.
=> Mireu aquí la sèrie completa d’entrenaments C #
Lectura recomanada
- Tutorial de maneig d'excepcions C # amb exemples de codi
- Tutorial de Python DateTime amb exemples
- C # Funcions / Mètodes Tutorial amb exemples de codi
- Tutorial SVN: Gestió del codi font mitjançant Subversion
- Tutorial de cadenes C #: mètodes de cadenes amb exemples de codi
- Tutorial SVN de tortuga: revisions al dipòsit de codis
- Tutorial Python Tuple amb exemples pràctics
- Ordre Ls a Unix amb exemples