Коллега использовал цикл for для перебора списка в некотором коде C#, который он написал, и оставил комментарий: «did't use For Each, потому что я не был уверен, что он итерации по порядку. Кто знает, что сделает Microsoft». Например, предположим, что у нас есть список застроенной так:Является ли заявление .NET foreach гарантированным итерировать коллекцию в том же порядке, в котором она была построена?
var someList = new List<string>();
someList.Add("one");
someList.Add("two");
someList.Add("three");
мой Коллега используется что-то вроде этого:
for (int i = 0; i < someList.Count; i++)
{
System.Diagnostics.Debug.WriteLine(someList[i]);
}
вместо этого:
foreach (var item in someList)
{
System.Diagnostics.Debug.WriteLine(item);
}
Я предполагаю, что он боится, предметы могут появляться в другом порядке, чем они были добавлены в коллекцию. Я думаю, что он немного параноик, но технически документация не указала порядок повторения итерации коллекции. Возможно ли, чтобы оператор foreach проходил массив или объект коллекции в любом порядке, отличном от нижнего предела до самого высокого?
+1 О, нет, эффект Скита дает вам меньше голосов. –
Тестирование, чтобы увидеть, могу ли я преодолеть эффект Скита. Скрещенные пальцы. –
У вас в настоящее время есть еще один, чем я, благодаря моему собственному преимуществу. Я предполагаю, что это не эффект Скита, который вы имели в виду;) –