Perché quindi IEnumerable<T>
può essere utilizzato per qualsiasi tipo T, non solo HttpPostedFileBase
.
La maggior parte delle raccolte nello spazio dei nomi System.Collections.Generic
implementano IEnumerable<T>
. IEnumerable<T>
è stato creato, non per fornire implementazioni di raccolta concreta per tipi specifici, ma per fornire implementazioni concrete di tipi specifici di raccolte che possono funzionare con qualsiasi tipo.
Le seguenti collezioni implementano tutte IEnumerable<T>
e possono quindi eseguire tutte le operazioni definite da IEnumerable<T>
:
Dictionary<TKey, TValue>
HashSet<T>
List<T>
LinkedList<T>
Queue<T>
SortedDictionary<TKey, TValue>
SortedList<TKey, TValue>
Stack<T>
SynchronizedCollection<T>
SynchronizedKeyedCollection<K, T>
SynchronizedReadOnlyCollection<T>
Ma mentre tutti hanno caratteristiche di memoria e prestazioni diverse, sono tutti ancora in grado di lavorare con oggetti di qualsiasi tipo.