A instrução .NET foreach é garantida para iterar uma coleção na mesma ordem em que foi criad

Um colega de trabalho usou um loop for para iterar uma lista em algum código C # que ele escreveu e deixou o comentário: "não usou o For Each porque eu não tinha certeza de que itera em ordem. Quem sabe o que a Microsoft fará". Por exemplo, suponha que tenhamos uma lista criada assim:

var someList = new List<string>();

someList.Add("one");
someList.Add("two");
someList.Add("three");

my colega de trabalho usou algo como isto:

for (int i = 0; i < someList.Count; i++)    
{
    System.Diagnostics.Debug.WriteLine(someList[i]);
}

em vez disso:

foreach (var item in someList)              
{
    System.Diagnostics.Debug.WriteLine(item);
}

Acho que ele tem medo que os itens possam sair em uma ordem diferente da que foram adicionados à coleção. Acho que ele está sendo um pouco paranóico, mas tecnicamente, a documentação não indica a ordem em que a coleção é iterada. É possível que uma instrução foreach percorra um objeto de matriz ou coleção em qualquer ordem que não seja do limite mais baixo para o mais alt

questionAnswers(3)

yourAnswerToTheQuestion