这个问题可能只是缺乏对.NET框架的理解,但实际在界面中拥有一组数据而不仅仅是在列表中有什么好处?到目前为止,我只使用了List<T>
,它似乎完全按照我的需要去做,但是看看其他人的代码,我发现有人使用IEnumerable<T>
是很常见的, IQueryable
/ IQueryable<T>
,ICollection<T>
,甚至是IList<T>
。话虽如此,List<T>
和IList<T>
之间的区别是什么?
据我所知,其中一些对所包含的对象有不同的功能,但哪个最安全? IEnumerable
?
答案 0 :(得分:3)
如果将类型设置为接口类型,则可以使用实现IList<T>
的任何类型。
如果您使用List<T>
,则只能使用从中继承的类型和类型。
这取决于使用情况 - 如果您只需要迭代,请使用IEnumerable<T>
,如果您还需要添加/删除项目,请使用ICollection<T>
。如果您需要索引集合,请使用IList<T>
等...