по крайней мере, использует массив в качестве резервного хранилища, поэтому для них это будет O (1)

ажется глупым вопросом, но я не нашел ответа, так что вот оно. :)

В обоих случаях вы получите исключение «вне допустимого диапазона», если не сможете проверить границы своей коллекции. Это просто предпочтение стиля кодирования?

И в случае, если кому-то нужен пример:

List<byte> myList = new List<byte>(){0x01, 0x02, 0x03};
byte testByte = myList.ElementAt(2);

против

byte testByte = myList[2];

Ответы на вопрос(1)

Ваш ответ на вопрос