【发布时间】:2010-11-15 16:01:52
【问题描述】:
我的问题如上面的标题。例如
IEnumerable<T> items = new T[]{new T("msg")};
items.ToList().Add(new T("msg2"));
但毕竟里面只有 1 个项目。我们可以有像items.Add(item) 这样的方法吗,比如List<T>?
【问题讨论】:
-
IEnumerable<T>仅用于查询集合。它是 LINQ 框架的支柱。它始终是一些其他集合的抽象,例如Collection<T>、List<T>或Array。该接口只提供了一个GetEnumerator方法,该方法返回一个IEnumerator<T>的实例,该实例允许一次遍历一个扩展集合。 LINQ 扩展方法受此接口限制。IEnumerable<T>被设计为只读,因为它可能代表多个集合的一部分的聚合。 -
对于这个例子,只声明
IList<T>而不是IEnumerable<T>:IList<T> items = new T[]{new T("msg")}; items.Add(new T("msg2"));
标签: c# list ienumerable