¿Por qué usaría Enumerable.ElementAt () versus el operador []?

Esta parece una pregunta tonta, pero no he encontrado la respuesta, así que aquí está. :)

En ambos casos, obtendrá una excepción "fuera de rango" si no verifica los límites de su colección. ¿Es solo una preferencia de estilo de codificación?

Y en caso de que alguien necesite un ejemplo:

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

versu

byte testByte = myList[2];

Respuestas a la pregunta(8)

Su respuesta a la pregunta