C# 使用列表<;T>;vs.IList<;T>;
可能重复:C# 使用列表<;T>;vs.IList<;T>;,c#,asp.net,.net,C#,Asp.net,.net,可能重复: 这个问题可能只是缺乏对.NET框架的理解,但是在接口中实际拥有一组数据而不仅仅是在列表中有什么好处呢?到目前为止,我只使用了列表,它似乎做了我需要它做的事情,但看看其他人的代码,我发现有人经常使用IEnumerable,IQueryable/IQueryable,ICollection,甚至IList。也就是说,List和IList之间有什么区别 我知道其中一些在所包含的对象上具有不同的功能,但哪一个是最安全的IEnumerable?如果将类型设置为接口类型,则可以使用实现ILis
这个问题可能只是缺乏对.NET框架的理解,但是在接口中实际拥有一组数据而不仅仅是在列表中有什么好处呢?到目前为止,我只使用了
列表
,它似乎做了我需要它做的事情,但看看其他人的代码,我发现有人经常使用IEnumerable
,IQueryable
/IQueryable
,ICollection
,甚至IList
。也就是说,List
和IList
之间有什么区别
我知道其中一些在所包含的对象上具有不同的功能,但哪一个是最安全的
IEnumerable
?如果将类型设置为接口类型,则可以使用实现IList的任何类型
如果使用列表
,则只能使用该类型以及从中继承的类型
这取决于使用情况-如果只需要迭代,请使用
IEnumerable
,如果还需要添加/删除项,请使用ICollection
。如果您需要索引到集合中,请使用IList等。最好只使用您需要的内容。因此,如果一个方法只使用IList
的方法和属性,为什么它要强制执行列表作为参数?请注意,数组
还实现了IList
。