Настоящий Флеймер
Зарегистрирован: 21 February 2005
Сообщения: 1334
Примеры кода: 0
|
Re[4]: в каком порядке вытыскивает foreach |
25 January 2007 16:00 |
|
|
|
|
Здравствуйте, Sinclair, Вы писали:
_FR>>Ага, щаззз. Вот пример, опровергающий это определение:
S>Фигней пострадать сильно охота?
Это я фигнёй страдаю? :shuffle: Формальное отношение к определениям уже "фигней" называется? :no: Здравствуйте, приехали. Моя точка зрения на эти безобразия тут.
Предерживаюсь же я следующей точки зрения:
При обходе набора элементов что надо знать? Индекс текущего элемента от начала? Тогда
int index = 0;
foreach(object item in container) {
// …
index++;
}//for
Или позиция элемента в контейнере? В таком случае (если контейнер, конечно же позволяет):
foreach(object item in container) {
int index = container.IndexOf(item);
// …
}//for
или же, если опять контейнер позволяет, использовать цикл for вместо foreach.
Теперь что касается добавления: какое вообще значение имеет порядок добавления элементов? Только то, что подразумевает под добавлением контейнер. И не один контейнер _не обязан_ при перечислении возвращать элементы в той же последовательности, в которой они были в него добавлены, например потому, что между добавлением и перечислением можно над контейнером "потворить чудеса".
Зачастую, енумератор по-умолчанию контейнера возвращает элементы в порядке, так сказать, хранения. Это видно хотя бы из кода, которые не сочёл за труд показать Lloyd здесь. Разницу между порядком добавления и порядком хранения предлагаю додумать читателю. ... << RSDN@Home 1.2.0 alpha rev. 670>>
Now playing: «Тихо в лесу…»
Данное сообщение получено с сайта RSDN
|
|