【问题标题】:Using List<T> vs. IList<T> [duplicate]使用 List<T> 与 IList<T> [重复]
【发布时间】:2013-01-11 13:41:51
【问题描述】:

可能重复:
When to use IList and when to use List

这个问题可能只是对 .NET 框架缺乏了解,但实际上在接口中包含一组数据而不是仅将其包含在列表中有什么好处?到目前为止,我只使用了List&lt;T&gt;,它似乎做了我需要它做的事情,但是查看其他人的代码,我发现有人使用IEnumerable&lt;T&gt;IQueryable/ 非常频繁IQueryable&lt;T&gt;ICollection&lt;T&gt;,甚至是IList&lt;T&gt;。话虽如此,List&lt;T&gt;IList&lt;T&gt; 之间还有什么区别?

我知道其中一些在包含的对象上具有不同的功能,但哪个最安全? IEnumerable?

【问题讨论】:

  • 最好只使用您需要的东西。那么如果一个方法确实只使用IList 的方法和属性,为什么要强制使用List 作为参数呢?请注意,Array 也实现了 IList

标签: c# asp.net .net


【解决方案1】:

如果将类型设置为接口类型,则可以使用实现IList&lt;T&gt;任何类型。

如果您使用List&lt;T&gt;,您只能使用该类型以及从它继承的类型。

这取决于使用情况——如果你只需要迭代,使用IEnumerable&lt;T&gt;,如果你还需要添加/删除项目,使用ICollection&lt;T&gt;。如果需要对集合进行索引,请使用IList&lt;T&gt;等...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-30
    • 2017-06-10
    相关资源
    最近更新 更多