Tak się zastanawiam, dlaczego w C# lista (List<T>) nie jest typową listą, tylko wrapperem na tablicę. Przecież można by zrobić prawdziwą listę za pomocą np. takiej klasy reprezentującej jej elementy:
class ListItem<T>
{
public ListItem<T> Prev { get; set; }
public ListItem<T> Next { get; set; }
public T Value { get; set; }
}
W C++ vector jest chyba szybszy niż list, ale tylko do pewnego rozmiaru, z tego co wiem. Więc nie do końca tu chyba chodzi o kwestie optymalizacyjne, zwłaszcza, że w .NET nie ma typowej sterty, tylko zarządzana i przypomina bardziej stos (nowe elementy tworzone są na końcu sterty, a nie w wolnych miejscach).
Dlaczego więc w C# nie ma typowej listy?