Страницы

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

вторник, 31 декабря 2019 г.

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

#c_sharp #net #unity3d


Почему 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() {

 } 
}

    


Ответы

Ответ 1



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

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

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