Junior — Middle
Can you explain the internal structure of the List data structure and how it is implemented in memory?
sobes.tech AI
Answer from AI
In C#, the List<T> data structure is implemented as a dynamic array. It contains:
- A fixed-size array that stores the elements.
- A field indicating the current size (number of elements).
When a new element is added and the array is full, a new array of larger size (usually twice as large) is created, and all elements are copied into it. This allows efficient addition of elements while maintaining O(1) access by index.
Example:
List<int> numbers = new List<int>();
numbers.Add(1);
numbers.Add(2);
// Inside List, the array expands when necessary
int first = numbers[0]; // index access
Thus, List<T> combines the advantages of arrays (fast access) and dynamic sizing.