.NET foreach, оператор гарантировал, что выполнил итерации набора в том же порядке, в котором это было создано?

У вас есть веб-страница, https://example.com/, которая включает в себя немного JavaScript.

Что JavaScript хочет читать данные из https://api.steampowered.com/.

Для этого https://api.steampowered.com/ необходимо дать разрешение https://example.com.

Вы настроили https://example.com для предоставления разрешения всем веб-сайтам читать данные с него.

Вы не настроили https://api.steampowered.com/ для предоставления разрешения кому-либо. (По крайней мере, я предполагаю, что вы не работаете в Steam).

15
задан raven 10 January 2010 в 06:00
поделиться

3 ответа

Ваш вопрос расценивает List<T>, который действительно поддерживает порядок.

foreach, один, как гарантируют, ничего не сделает. Это просто просит, чтобы объект предусмотрел свой перечислитель, который мог сделать что-либо, потенциально.

33
ответ дан 1 December 2019 в 00:03
поделиться

Это зависит от набора:

  • Для List<T> это, как гарантируют, будет порядком вставки. (Это принимает всего Add вызовы как показано. Если бы Вы вставляете элементы в список в конкретных местах, они возвратить в правильных пуантах, которые Вы ожидали бы.) В основном это - тот же порядок, как Вы добрались бы путем взятия list[0], list[1], list[2] и т.д.
  • Для Dictionary<TKey, TValue> нет никакого гарантируемого упорядочивания.
  • Для SortedList<TKey, TValue> (и т.п.) это будет в ключевом порядке сравнения - в этом суть типа.
  • Массивы всегда выходят в порядке элемента.
23
ответ дан 1 December 2019 в 00:03
поделиться

Для специфического ответа на вопрос "foreach" возвращает порядок что. GetEnumerator () возвраты. Для списков это - порядок, что Вы добавили вещи до конца. Для словарей это - вероятно, порядок блоков, где вещи были присвоены.

4
ответ дан 1 December 2019 в 00:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: