阿老师,什么情况下使用IEnumerable、ICollection、List呢

来源:3-3 【应用】创建数据模型和数据仓库

qq_是时候换个脑子了_0

2020-07-13

写回答

1回答

阿莱克斯刘

2020-07-14

  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


3
0

.Net 开发电商后端API 从0到精通RESTful

. Net 实战+RESTful思想纵深课程,开发优雅RESTful风格API。

977 学习 · 547 问题

查看课程