2017-01-21 19 views
0

Listに対してIEnumerableを使用する利点は何ですか?C#でIEnumerableをListに使用する

List<Employee> employees = new List<Employee>() { new Employee(...),...} 
foreach (Employee emp in employees) 
{ 
    Console.WriteLine(emp.Name); 
} 

またはIEnumerableをとして、私が使用することができます:その後、使用

IEnumerable<Employee> employees = new List<Employee>() { new Employee(...),...} 

私は、各従業員を反復処理したい場合たとえば、私が使用いずれかのことができ、Employeeクラスと従業員オブジェクトのコレクションを持っていますforeachループ。

どちらも同じ目標を達成しています。なぜ、Listに対してIEnumerableを使用するのが好きですか?

答えて

1

リストはインデックスによる値へのアクセスを可能にし、挿入、追加、削除などのメソッドをサポートするより複雑な構造です。 IEnumerableは、Listクラスが実装する非常に基本的なインターフェイスです(最初の数回実装するのは難しいかもしれませんが)。つまり、IEnumerableは、Listが提供する追加機能が不要な場合に使用されます。それ以外の場合、ListはIEnumerableと "is a"の関係を持っているので、c#が提供するcontravarianceの規則のために同じことができます。ここではその上のいくつかのドキュメントは、次のとおりです。

のIEnumerableの実装にも

https://msdn.microsoft.com/en-us/library/dd799517.aspx

:結論

https://msdn.microsoft.com/en-us/library/system.collections.ienumerable(v=vs.110).aspx

、あなたがする必要があるすべてのような単純なイテレータを使用している場合結果のIEnumerableを循環するforeachループ、またはLINQを使用すると、IEnumerable型は偉大で軽量です。より多くの機能が必要な場合は、リストがIEnumerableであるためにIEnumerableに必要な機能をビルドします。

関連する問題