可能重复:
What's the difference between IEnumerable and Array, IList and List?
上述两者之间有什么区别?
答案 0 :(得分:73)
List<string>
是IEnumerable<string>
的具体实现。不同之处在于IEnumerable<string>
仅仅是string
的序列,但List<string>
可以通过int
索引编制索引,可以添加到&删除,也可以在特别指数。
基本上,界面IEnumerable<string>
允许您在序列中流式传输string
,但List<string>
允许您执行此操作,以及以特定方式修改和访问列表中的项目。 IEnumerable<string>
是string
的一般序列,可以迭代但不允许随机访问。 List<string>
是特定的随机访问变量大小集合。
答案 1 :(得分:10)
不同。
IEnumerable使您可以使用for-each循环遍历集合。
IEnumerable只有方法GetEnumerator。
并列出它实现了许多接口,如IEnumerable,Ilist等。在List中有很多功能。
在性能IEnumerable中比List快。
答案 2 :(得分:4)
IEnumerable<T>
是一个界面。必须实施。
List<T>
是IEnumerable<T>
答案 3 :(得分:2)
一个是界面: http://msdn.microsoft.com/en-us/library/9eekhta0.aspx
另一个是实现该接口的类: http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx
此外,List是一个在向其添加元素时增长的数组,而IEnumerable允许实现者在foreach中使用。
答案 4 :(得分:2)
第一个是字符串的具体List
,另一个是实现IEnumerable<string>
的任何类