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)