Por que eu usaria Enumerable.ElementAt () versus o operador []?

Esta parece ser uma pergunta boba, mas não encontrei a resposta, então aqui está. :)

Nos dois casos, você receberá uma exceção "fora do intervalo" se não verificar os limites da sua coleção. Isso é apenas preferência de estilo de codificação?

E caso alguém precise de um exemplo:

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

versu

byte testByte = myList[2];

questionAnswers(8)

yourAnswerToTheQuestion