1

可能重复:
何时使用 IList 以及何时使用 List

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

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

4

1 回答 1

3

如果将类型设置为接口类型,则可以使用任何实现IList<T>.

如果您使用List<T>,则只能使用该类型和从它继承的类型。

这取决于使用情况 - 如果您只需要迭代,请使用IEnumerable<T>,如果您还需要添加/删除项目,请使用ICollection<T>. 如果您需要对集合进行索引,请使用IList<T>等...

于 2013-01-11T13:43:28.170 回答