La mia domanda come titolo sopra. Per esempio,
IEnumerable<T> items = new T[]{new T("msg")};
items.ToList().Add(new T("msg2"));
ma dopotutto contiene solo 1 oggetto.
Possiamo avere un metodo simile items.Add(item)
?
come il List<T>
IList<T>
invece di IEnumerable<T>
:IList<T> items = new T[]{new T("msg")}; items.Add(new T("msg2"));
IEnumerable<T>
è pensato solo per l'interrogazione di raccolte. È la spina dorsale per il framework LINQ. E 'sempre un'astrazione di qualche altra collezione, comeCollection<T>
,List<T>
oArray
. L'interfaccia fornisce solo unGetEnumerator
metodo che restituisce un'istanzaIEnumerator<T>
che consente di camminare un elemento alla volta della raccolta estesa. I metodi di estensione LINQ sono limitati da questa interfaccia.IEnumerable<T>
è progettato per essere letto solo perché può rappresentare un'aggregazione di parti di più raccolte.