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 tylkoGetEnumeratormetodę 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.