2010-11-15 122 views

回答

70

List<string>任何类是一个具体实施IEnumerable<string>。区别在于IEnumerable<string>仅仅是string的一个序列,但List<string>可通过int索引进行索引,可以将其添加到特定索引并将其从特定索引中移除并将其删除。

基本上,接口IEnumerable<string>让你流序列中的stringList<string>可以让你做到这一点,以及修改和访问特定的方式列出的项目。 IEnumerable<string>是通用序列string,可以迭代但不允许随机访问。 A List<string>是一个特定的随机访问可变大小集合。

+4

这个答案比那些在http://stackoverflow.com/questions/764748/ienumerable-and-array-ilist-and-list之间的区别 – JYelton 2011-04-11 16:43:01

+0

具体实现是什么意思?这是否意味着一个列表继承自可枚举? – user1534664 2013-04-21 12:20:12

+1

@ user1534664:否。它意味着它从'IEnumerable' *继承而来,*它不是抽象的,它实际上是可构造的。 – jason 2013-08-09 00:13:48

4

IEnumerable<T>是一个接口。它必须实施。

List<T>是一个实现的IEnumerable<T>

2

首先是弦的具体List,另一种是实施IEnumerable<string>

10

不同。

IEnumerable使您可以使用for-each循环遍历集合。

而IEnumerable只是有方法GetEnumerator。

并列出它实现了许多接口,如IEnumerable,Ilist等。

性能IEnumerable比List快。

相关问题