阿老师,什么情况下使用IEnumerable、ICollection、List呢
来源:3-3 【应用】创建数据模型和数据仓库

qq_是时候换个脑子了_0
2020-07-13
写回答
1回答
-
区别
我们来看一下这几个接口的定义就大概理解了:
public interface IEnumerable<out T> : IEnumerable
public interface ICollection<T> : IEnumerable<T>, IEnumerable
public interface IList<T> : ICollection<T>, IEnumerable<T>, IEnumerable
public class List<T> : IList<T>, ICollection<T>, IEnumerable<T>, IList, ICollection, IEnumerable
所以,按照功能排序:List<T> 《 IList<T> 《 ICollection<T>《 IEnumerable<T>
按照性能排序:IEnumerable<T>《 ICollection<T>《 IList<T>《 List<T>
2. 至于什么时候使用这三个类型则完全取决于你的需求,你甚至在任何情况下都使用IList或List也是没错的,(只要你不怕慢)
IEnumerable
用于性能需求较高的操作,比如说你有组数据,只需要遍历输出,用这个就可以了。
ICollection
你的数组需要做一些操作,比如说需要得到数组总数(Count),你就可以使用这个
IList
如果你需要在列表中插入(Add)或删除(Remove)元素,那就得使用Ilist或list
3. 最后,还有一个IQueryable,似列表而非列表,用于数据库级别的操作,在接下来的课程中会讲到。
参考资料:
https://www.jianshu.com/p/ddc138a200e2
https://www.cnblogs.com/sunliyuan/p/5816666.html
30
相似问题