以上两者之间有什么区别?
以上两者之间有什么区别?
List<string>
是 IEnumerable<string>
的一个具体实现。区别在于 IEnumerable<string>
仅仅是一个字符串序列,而 List<string>
可以通过 int
索引进行索引、添加和删除,并且可以在特定的索引处插入项目。
基本上,IEnumerable<string>
接口允许您按顺序流式传输字符串,但 List<string>
不仅如此,还允许您以特定方式修改和访问列表中的项。 IEnumerable<string>
是一般的字符串序列,可以迭代但不允许随机访问。 List<string>
是一个具体的可变大小的随机访问集合。
IEnumerable
并且 它不是抽象的,实际上它是可构造的。 - jason不同。
IEnumerable使您能够使用for-each循环遍历集合。
IEnumerable只有GetEnumerator方法。
List它实现了许多接口,如IEnumerable,IList等。因此,List中有许多功能。
在性能方面,IEnumerable比List更快。
IEnumerable<T>
是一个接口,必须被实现。
List<T>
是IEnumerable<T>
的一种实现方式。
一个是接口: http://msdn.microsoft.com/en-us/library/9eekhta0.aspx
另一个是实现该接口的类: http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx
此外,List是一个在添加元素时会增长的数组,而IEnumerable允许实现者在foreach中使用。
第一个是字符串的具体列表List
,另一个是实现了IEnumerable<string>
接口的任何类。