web-dev-qa-db-ja.com

IEnumerableまたはIListは何を使用すればよいですか?

どちらを使用するべきか誰にも教えてもらえますか?.

たとえば、コレクションまたは個々のアイテムの.Countにアクセスする場合は、IListを使用する必要があると思いますよね?

ありがとうございました。

50
Sergio Tapia

一般的に言えば、目的に合った最も具体的なタイプを試してみてください。 IEnumerableIListより具体性が低い(IListIEnumerableを実装する)ので、IListから特定のものが必要でない限り(Count、またはおそらくAddDeleteなど)、IEnumerableを使用します。

IEnumerableを使用する利点の1つは、イテレータメソッドを記述してこの型を返すことができることです(慣れていない場合は、「yield return」とイテレータメソッドを検索してください)。これにより、非常にメモリ効率の高い「パイプライン」をループに書き込むことができます。

66
Rob Levine

コレクション内のアイテムをループ処理する場合は、IEnumerableを使用します。

IListは、リストのコンテンツを順不同で追加、削除、アクセスしたい場合です。

エンティティのコレクションのIListとIEnumerable

http://www.informit.com/guides/content.aspx?g=dotnet&seqNum=722

23
kemiller2002

コレクションへのインデックスによるアクセス、要素の追加や削除などが必要な場合はIListを使用し、コレクションを列挙するだけの場合はIEnumerableを使用する必要があります。

非常に簡単な答えですが、シナリオを説明していただければ拡張させていただきます。

8
Restuta