2010-11-15 161 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快。

相關問題