Cele mai folosite colectii in C#

Posted by anghelvalentin on September 01, 2019

Sunt doua moduri prin care poti sa grupezi obiectele pe care le-ai creat: vectori si colectii. Daca vectorii sunt cea mai optima solutie atunci cand ai un numar de obiecte fix, care nu se schimba. Colectiile sunt solutia pentru un numar variabil de obiecte. Exista mai multe tipuri de colectii care rezolva anumite cerinte. 

Atunci cand lucrezi cu un numar variabil de obiecte, vectorii nu sunt o solutie pentru tine. Deci folosim colectiile cand avem un numar variabil de obiecte.

Astazi, iti voi spune care sunt cele mai populare colectii din C# si cand trebuie sa le folosesti. 

Exista 3 namespace-uri atunci cand vine vorba de colectii in C#.

# System.Collections  * ArrayList * Hashtable * Queue * Stack

Aceste colectii (le-am mentionat pe cele mai populare) functioneaza cu instante ale object, adica practic toate obiectele. Intr-o astfel de colectie poti pastra diferite tipuri de obiecte. Poti salva atat "masini" cat si "oameni".

Aceste colectii sunt mai rar folosite, singura colectie pe care am mai vazut-o din cand in cand este ArrayList.

System.Collections.Generic

 Aceste namespace iti permit construirea de colectii folosind Generics, deci acestea sunt strongly typed, adica  poti adauga doar obiecte a caror clasa este specificata de la inceput si regasesti doar acele obiecte, deci nu mai trebuie sa faci cast.

Cele mai populare colectii din acest namespace

  • Dictionary
  • List
  • Queue
  • SortedList<TKey, TValue>
  • Stack

Colectiile pe care le vei folosi zi de zi

Colectiile din acest namespace trebuie sa le stii intrucat le vei folosi frecvent. Toata lumea le foloseste, chiar si cand exista un numar de obiecte fix, lumea le foloseste din comodidate in detrimentul array-urilor

Mai sus ti-am spus care sunt cele mai populare colectii din acest namespace. Exista o lista si mai scurta: List si Dictionary.  Deci baga-le la cap, invata-le, fii sigur ca stii care sunt metodele disponibile pentru aceste doua colectii pentru ca le vei folosi al naibii de mult.

System.Collections.Concurrent

Aceste colectii le folosesti atunci cand lucrezi cu mai multe threaduri. Sunt colectii speciale cu care nu trebuie sa iti bati capul daca nu ai programe care folosesc mai multe threaduri.

O poza de rezumat.