An object-oriented and type-safe programming language that has its roots in the C family of languages and includes support for component-oriented programming.
List<T> are implemented internally as arrays that are resized as required. So access is linear, but adding may require a reallocation and copy. So they are really vectors.
Dictionary<k,t> are implemented as hash tables.
The current version of C# also has Span<T> which is stack allocated memory buffer.