Является ли порядок элементов в списке С# <T> детерминированным?
Я всегда думал иначе, но недавно мне нужно было знать:
Если я добавлю элементы в список в определенном порядке, могу ли я найти его всегда в одном порядке?
Спасибо!
Ответ 1
Да; вы управляете упорядочением List<T>.
Можно предположить, что любая коллекция .NET с индексом list[int] имеет предсказуемое упорядочение; в противном случае численный индекс не имел бы никакого смысла. Для сравнения, невозможно использовать числовой индекс с Dictionary<K,V>, а при перечислении словаря заказ не гарантируется.
Ответ 2
Да, он детерминирован. Имейте в виду, что если вы хотите использовать List<T> по потокам, то, как и в любом случае, вы не можете гарантировать порядок, в котором произойдут взаимодействия.
Ответ 3
Да. Список - это индексированная коллекция; использование Add() для размещения элементов в списке приведет к их индексированию в том порядке, в котором они добавлены.