Moje pytanie jako tytuł powyżej. Na przykład,
IEnumerable<T> items = new T[]{new T("msg")};
items.ToList().Add(new T("msg2"));
ale w końcu ma tylko 1 przedmiot.
Czy możemy mieć taką metodę items.Add(item)
?
podobnie jak List<T>
IList<T>
zamiast IEnumerable<T>
:IList<T> items = new T[]{new T("msg")}; items.Add(new T("msg2"));
IEnumerable<T>
jest przeznaczony tylko do wysyłania zapytań do kolekcji. Jest to szkielet szkieletu LINQ. Zawsze jest abstrakcją z innej kolekcji, takich jakCollection<T>
,List<T>
lubArray
. Interfejs udostępnia tylkoGetEnumerator
metodę zwracającą instancję,IEnumerator<T>
która umożliwia przechodzenie rozszerzonej kolekcji po jednym elemencie na raz. Interfejs rozszerzeń LINQ jest ograniczony przez ten interfejs.IEnumerable<T>
jest przeznaczony tylko do odczytu, ponieważ może reprezentować agregację części wielu kolekcji.