Blog Stats
  • Posts - 16
  • Articles - 0
  • Comments - 123
  • Trackbacks - 31

 

mercoledì 27 giugno 2007

[70-553] – 1. Section 1 – 1. Dev application – 2 – Group of data(2)

Manage a group of associated data using collections (System.Collections namespace)

Classi: Le classi non fanno che implementare le interfacce.:

ArrayList, implementa:  IList, ICollection, IEnumerable, ICloneable

Hashtable: implementa IDictionary, ICollection, IEnumerable, ICloneable .. e qualche altra interfaccia non di liste per la serializzazione e deserializzazione;

CollectionBase: è una classe astratta per collezioni fortemente tipizzate. Implementa IList, ICollection, IEnumerable.

Per usarla si deve creare una propria classe derivando da quella..

ReadOnlyCollectionBase: è una classe astratta per una collezione che, dopo la fase di creazione, diventa read-only

DictionaryBase: è la classe astratta per un dizionario: insieme di coppie chiave-valore.

DictionaryEntry: è la classe per definire la coppia chiave – valore.

Queue: è una lista tradizionale (FIFO), implementa ICollection, IEnumerable, Icloneable.

SortedList: è una sorta di dizionario ordinato per chiave, accessibile sia per chiave che per indice. Implementa:  ICollection, IEnumerable, ICloneable

BitArray: gestisce in modo compatto un array di bit. Implementa ICollection, IEnumerable, ICloneable.

Stack: è la classica lista LIFO. Implementa:  ICollection, IEnumerable, ICloneable

Comparer: serve per paragonare due oggetti, il costruttore puo’ prende la cultura come parametro. C’e’ anche una bella classe CaseInsensitiveComparer bello per paragonare le stringhe

[70-553] – 1. Section 1 – 1. Dev application – 2. Group of data(1)

Manage a group of associated data using collections (System.Collections namespace)

Interfacce:

ICollection: è l’interfaccia per quasi tutte le liste: struttura l’interfaccia per inserire un elemento, per inserire un elemento in una posizione, per avere il conteggio e un enumerator che funziona come iteratore, che implementa l’intefaccia IEnumerator.

IComparer: è un’interfaccia che espone solo in metodo Compare per personalizzare il confronti fra gli oggetti della collezione.

IDictionary: è l’interfaccia per una collezione di coppie “chiave – valore”, prevede funzioni come Add, Contains, Clear e la scansione con un IDictionaryEnumerator.

IEnumerable è una interfaccia ha solo una funzione che ritorna un IEnumerator. Il bello di una classe che implementa questo tipo di interfaccia è che si puo’ utilizzare l’enumerator in un foreach rendendo il tutto molto molto semplice nell’uso.

Se si usa un IEnumerator è necessarissimo utilizzare  yield per restituire i valori.

   public class Mesi : System.Collections.IEnumerable

   {

      string[] _mesi = {"Gen","Feb","Mar","Apr","Mag","Giu","Lug","Ago","Set","Ott","Nov","Dec"};

      public System.Collections.IEnumerator GetEnumerator()

      {

         for (int i = 0; i < _mesi.Length; i++)

         {

            yield return _mesi[i];

         }

       }

    }

 

E si usa:

            Mesi mieimesi = new Mesi();

            foreach (string s in mieimesi)

                Console.Write(" {0} ", s);

 

IEqualityComparer: è una interfaccia per soli metodi: Equals e GetHashCode.

IHashCodeProvider: è un interfaccia per definire una propria funzione Hash

IList: E’ l’interfaccia per una lista di oggetti: Add, Insert, getIndexOf,Remove,

(ICloneable è l’interfaccia per ottenere una copia dell’oggetto)

 

 

Copyright © Bruna Gavioli