2011-10-27 7 views
7

私は最近C#を学んでいるJavaプログラマです。 C#の約リストインターフェイス:JavaからC#

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

何:リストを使用しているとき

通常Javaで、それは実装間で切り替えるためにそのインターフェースに対するpreferrableプログラミングすべきですか?同様のアプローチが存在しますか?誰か私に例を示すことができますか?また、階層内で可能な限り最高のオブジェクトで作業することが好ましい。NETで

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

答えて

8

:今、私はこの方法リストを構築するんだけど、私は考えていないので、リストのインターフェースです。

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

そして、あなたはまた、階層でさえ高いICollection<T>インターフェースを使用することができインデックスでリストにアクセスする必要がない場合:あなたはIList<T>インタフェースを使用することができます。

それともあなただけがIEnumerable<T>で可能な限り最高のインターフェイスを使用することができ、リストを列挙したい場合:それは簡単ですC#で

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

- それはIそのインタフェースで始まる場合。

1

List<T>は、IList<T>およびICollection<T>を含む多くのインターフェイスを実装しています。どのインターフェイスが最も適切かを判断するためにコードを調べる必要があるかもしれません。

+0

ありがとうございます。IListとICollectionの違いをいくつか説明してください。 – Heisenbug

+0

@Heisenbug - 私はそのドキュメントにリンクしました。@ダリンは既に大きな違いを説明しています。つまり、IList はインデックス付きアクセスをサポートしています。 –

関連する問題