.NET offers a generic list container whose performance is almost identical (see Performance of Arrays vs. Lists question). However they are quite different in initialization
You seem to be emphasizing the need for a positional association with your data, so wouldn't an associative array be more fitting?
Dictionary foo = new Dictionary(); foo[2] = "string";