Страницы

Поиск по вопросам

понедельник, 8 апреля 2019 г.

Порядок вывода foreach

Почему Foreach именно в таком порядке выводит объект?
A B Q
using System.Collections; using System.Collections.Generic; using UnityEngine;
public class learningScript : MonoBehavior { public Hashtable inventory = new Hashtable();
void Start() { inventory.Add("age", "Q"); inventory.Add("gender", "A"); inventory.Add("name", "B"); foreach (string invert in inventory.Keys) { Debug.Log(inventory[invert]); } }
void Update() {
} }


Ответ

Это не foreach выводит, это Hashtable хранит. Эта коллекция не сохраняет порядок элементов. List порядок сохранит, SortedDictionary отсортирует, а хэш-таблицы сохранят в труднопредсказуемом порядке. Если важны и исходный порядок, и быстрый индексированный доступ, можно хранить в двух коллекциях сразу.

Комментариев нет:

Отправить комментарий