2010-11-15 11 views

Odpowiedz

70

A List<string> jest konkretna realizacja IEnumerable<string>. Różnica polega na tym, że IEnumerable<string> jest po prostu sekwencją string, ale List<string> można indeksować za pomocą indeksu int, można go dodawać do i usuwać oraz wstawiać elementy do określonego indeksu.

Zasadniczo interfejs IEnumerable<string> umożliwia strumieniowe przesyłanie string w sekwencji, ale List<string> pozwala to zrobić, a także modyfikować i uzyskać dostęp do elementów na listach w określony sposób. Numer IEnumerable<string> jest ogólną sekwencją string, która może być iterowana, ale nie pozwala na dostęp losowy. A List<string> to specyficzny zbiór o zmiennej wielkości.

+4

Ta odpowiedź była bardziej pomocna niż na http://stackoverflow.com/questions/764748/whats-the-difference-between -ienumerable-and-array-ilist-and-list – JYelton

+0

Co oznacza konkretna implementacja? Czy to oznacza, że ​​lista dziedziczy od niezliczonych? – user1534664

+1

@ user1534664: Nie. Oznacza to, że dziedziczy on po 'IEnumerable' * i * nie jest abstrakcyjny, jest w rzeczywistości możliwy do skonstruowania. – jason

4

IEnumerable<T> to interfejs. To musi być wdrożone.

List<T> jest realizacja IEnumerable<T>

2

Pierwszym jest beton List strun, drugi jest każda klasa wdrożenia IEnumerable<string>

10

różne.

Funkcja IEnumerable umożliwia wykonywanie iteracji w kolekcji przy użyciu pętli for-each.

I IEnumerable ma tylko metodę GetEnumerator.

I Wymień zaimplementuj wiele interfejsów takich jak IEnumerable, Ilist itp. Tak wiele funkcji na liście.

W wydajności IEnumerable szybciej niż na liście.

Powiązane problemy