Strutture Dati nel Linguaggio C#

Le strutture dati in un linguaggio ad oggetti, come il C#, sono molto importanti per tenere in memoria i dati che devono essere utilizzati nel programma. La piattaforma .NET implementa una serie di contenitori dati come gli hashtable, gli array a dimensione variabile, le code, gli stack ed i dizionari. In .NET tutte le collezioni si basano su una serie di interfacce, che indicano come trattare una struttura dati.

  • IEnumerable – Enumera i valori all’interno di una collezione utilizzando l’istruzione foreach.
  • ICollection – Implementata da tutte le collezioni per fornire il metodo CopyTo() e le proprietà Count, IsSynchronized e SyncRoot.
  • IComparer – Confronta due elementi della collezione in modo da poter effettuare un’ordinamento.
  • IList – Utilizzato da collezioni con indici.
  • IDictionary – Utilizzato sulle collezioni con indici chiave/valore.
  • IDictionaryEnumerator – Consente di enumerare i valori di un dizionario attraverso foreach.

Le collezioni possono contenere valori di diverso tipo, ma si tende normalmente ad utilizzarli con valori dello stesso tipo. Vediamo un esempio di utilizzo di un array.

using System;
using System.Collections;

public class Corso
{
   static void Main(string[] args)
   {
         ArrayList arrVal = new ArrayList();
         for (int i = 1; i <= 7; ++i)
              arrVal.Add(i);
         int iFattoriale = 1;
         foreach (int i in arrVal)
              iFattoriale *= i;
         Console.WriteLine("Il fattoriale di 7 è di {0}",
             iFattoriale);

         Console.ReadKey();
    }
}

In questo esempio semplicissimo abbiamo creato un nuovo oggetto di tipo ArrayList ed abbiamo aggiunto sette numeri, quindi abbiamo calcolato il fattoriale del numero più grande inserito, il 7 nel nostro caso. Attenzione a non inserire numeri massimi grandi perché con il fattoriale si va spesso in overflow.
La prossima volta inizieremo la trattazione delle collezioni, proprio spiegando nel dettaglio la classe ArrayList.

<< Lezione Precedente – Inizio CorsoIndice LezioniLezione Successiva >>

Di Giampaolo Rossi

Sviluppatore software da oltre 16 anni.

2 commenti

  1. il fatto che ammettano i valori di tipo diverso non è sempre bene, infatti io spesso e volentieri ricorro alle List!! 😀
    ciao

  2. Ciao, difatti l'ho messo nell'articolo e comunque io, sarà per la mia provenienza dal C++, uso sempre valori dello stesso tipo all'interno delle collezioni, magari creo più oggetti ArrayList.

I commenti sono chiusi.