Это кажется глупым вопросом, но я не нашел ответа, так что вот оно.:)
В обоих случаях вы получите исключение "вне диапазона", если не сможете проверить границы своей коллекции. Это только предпочтение стиля кодирования?
И в случае, если кому-то нужен пример:
List<byte> myList = new List<byte>(){0x01, 0x02, 0x03};
byte testByte = myList.ElementAt(2);
против
byte testByte = myList[2];