Principali liste e collezioni



Il Framework .Net mette a disposizione del programmatore un vasto numero di oggetti per manipolare insiemi di dati.
Le classi disponibili sono: Array, ArrayList, HastTable, Queue, Stack, SortedList ed altre ancora. Esse si basano sulle interfacce: ICollection, IList, IDictionary e IEnumerable.
Ognuna di esse ha proprietà e metodi propri.
Una volta capita la strategia di gestione degli insiemi che sta dietro al progetto delle Collection, si ha una chiave per saper scegliere la classe che si adatta maggiormente alle proprie esigenze.


IEnumerator:

Un enumeratore è un oggetto che permette di iterare su un intero insieme per visitare gli elementi uno ad uno. Se un'insieme implementa l'enumeratore, allora e' possibile applicarvi il ciclo For Each... Next.
  • Current - Fornisce l'elemento corrente dell'enumerazione.
  • MoveNext - Si porta all'elemento successivo dell'enumerazione.
  • Reset - Inizializza l'enumerazione.

IEnumerable:

Un oggetto che implementa IEnumerable e' in grado di fornire un enumeratore per l'insieme che rappresenta.
  • GetEnumerator - Restituisce l'enumeratore dell'insieme.

ICollection:

Implementa IEnumerable e definisce enumeratori, dimensione e sincronizzazione per un insieme di elementi.
  • Count - Restituisce il numero di elementi contenuti nell'oggetto.
  • IsSynchonized - Indica se la collection e' Thread Safe (ovvero si comporta correttamente nel caso esecuzioni multiple da parte di più thread).
  • SyncRoot - Se l'oggetto e' Thread Safe, fornisce un oggetto di sincronizzazione.
  • CopyTo - Trasferisce gli elementi in un array.

IList:

Implementa ICollection, IEnumerable per rappresentare un insieme di oggetti accessibili individualmente tramite un indice.
  • Item - Permette di accedere al singolo elemento tramite un indice.
  • Add - Aggiunge un elemento.
  • Clear - Elimina tutti gli elementi.
  • Contains - Indica se e' presente un dato elemento.
  • IndexOf - Restituisce la posizione dell'elemento dato.
  • Insert - Inserisce un elemento alla posizione data.
  • Remove - Elimina la prima occorrenza dell'elemento dato.
  • RemoveAt - Elimina l'elemento alla posizione data.

IDictionary:

Implementa ICollection, IEnumerable e definisce una collection i cui elementi memorizzano delle chiavi a ciascuna delle quali e' associato un valore.
  • Item - Permette di accedere ad un singolo elemento tramite una chiave.
  • Keys - Restituisce l'insieme di chiavi.
  • Values - Restituisce l'insieme di valori memorizzati.
  • Add - Aggiunge un elemento contraddistinto da una chiave ed un valore.
  • Clear - Elimina tutti gli elementi.
  • Contains - Testa la presenza di un elemento che ha la chiave data.
  • Remove - Elimina l'elemento associato alla chiave data.


Una volta esaminate le basi dei vari tipi di oggetti che rappresentano insiemi, possiamo analizzare questi oggetti e vedere le loro differenze.

Array:

Deriva da ICloneable, IList, ICollection, IEnumerable e rappresenta un insieme ordinato di elementi, accessibili per indice.
  • Lenght - Restituisce il numero di elementi.
  • Rank - Restituisce il numero di dimensioni.
  • GetLenght - Restituisce il numero di elementi della dimensione specificata.
  • IndexOf - Restituisce la posizione della prima occorrenza dell'elemento specificato.
  • LastIndexOf - Restituisce la posizione dell'ultima occorrenza dell'elemento specificato.
  • Reverse - Inverte l'ordine degli elementi di un array unidimensionale.
  • Sort - Ordina gli elementi di un array unidimensionale.

ArrayList:

Deriva da IList, ICollection, IEnumerable e rappresenta un array la cui capacita' si ridimensiona all'occorrenza.

  • Capacity - Mostra la capacita' attuale.
  • AddRange - Accoda un insieme di elementi alla lista.
  • InsertRange - Inserisce un insieme di elementi a partire da una data posizione.
  • RemoveRange - Elimina un insieme di elementi.
  • IndexOf - Restituisce la prima occorrenza dell'elemento specificato.
  • LastIndexOf - Restituisce l'ultima occorrenza dell'elemento specificato.
  • Sort - Ordina gli elementi. 

 Queue:

Deriva da ICollection, IEnumerable. Una Queue e' un insieme di elementi nel quale s'inserisce in coda e si estrae in testa, cioe' il primo elemento che entra e' il primo ad uscire, First In, First Out (FIFO).
  • Enqueue - Accoda un elemento.
  • Dequeue - Estrae il primo elemento della coda.
  • Peek - Restituisce il prossimo elemento, senza estrarlo.

Stack:

Deriva da ICollection, IEnumerable. Uno Stack inserisce l'elemento in testa ed estrae l'elemento in testa, cioe' l'ultimo elemento inserito e' il primo ad uscire, Last In, First Out (LIFO).
  • Push - Spinge un elemento in testa allo stack.
  • Pop - Estrae l'elemento in testa allo stack.
  • Peek - Restituisce l'elemento di testa, senza estrarlo.

HashTable:

Deriva da IDictionary, ICollection, IEnumerable e fornisce una collection di elementi identificati da una coppia chiave-valore. Ogni elemento e' univocamente individuabile tramite la chiave.

  • Keys - Fornisce l'insieme delle chiavi memorizzate.
  • Values - Fornisce l'insieme dei valori memorizzati.
  • Add - Aggiunge una coppia chiave, valore.
  • Clear - Elimina tutti gli elementi.
  • Remove - Elimina l'elemento con la chiave data.
  • ContainsKey - Verifica l'esistenza della chiave specificata.
  • ContainsValue - Verifica l'esistenza del valore specificato.

Commenti