2011-10-27 36 views
7

我是一個Java程序員,學習C#這些天。列表接口:從Java到C#

通常在Java中使用列表時,它應該是反對它,以便接口preferrable編程實現之間進行切換:

List<Object> list = new ArrayList<Object>(); 
//or 
list = new LinkedList<Object>(); 

什麼C#?是否存在類似的方法?有人能給我看一個例子嗎?因爲我現在建立一個列表這種方式,但我不認爲List是一個接口:

List<int> list = new List<int>(); 
list.Add(2); 

回答

8

在.NET中還優選與層次最高的可能對象的工作。您可以使用IList<T>接口:

IList<int> list = new List<int>(); 
list.Add(2); 

如果你不需要通過索引來訪問列表中,您也可以使用ICollection<T>界面,甚至在更高的層次。

或者,如果你只是想通過列表,你可以使用盡可能高的接口,它是IEnumerable<T>枚舉:

IEnumerable<int> list = new List<int>(new[] { 1, 2, 3 }); 
foreach(int item in list) 
{ 
    ... 
} 
1
IList<int> = new List<int>(); 

在C#中很容易 - 如果它與一個I它的界面開始。

1

List<T>實現了多個接口,包括IList<T>ICollection<T>。您可能需要檢查您的代碼以確定哪個接口最合適。

+0

謝謝......你能用幾句話來解釋IList和ICollection之間的區別嗎? – Heisenbug

+0

@Heisenbug - 我鏈接到他們的文檔,@Darin已經解釋了一個關鍵區別 - 「IList 」支持索引訪問。 –