Является ли порядок элементов в списке С# <T> детерминированным?

Я всегда думал иначе, но недавно мне нужно было знать:

Если я добавлю элементы в список в определенном порядке, могу ли я найти его всегда в одном порядке?

Спасибо!

Ответ 1

Да; вы управляете упорядочением List<T>.

Можно предположить, что любая коллекция .NET с индексом list[int] имеет предсказуемое упорядочение; в противном случае численный индекс не имел бы никакого смысла. Для сравнения, невозможно использовать числовой индекс с Dictionary<K,V>, а при перечислении словаря заказ не гарантируется.

Ответ 2

Да, он детерминирован. Имейте в виду, что если вы хотите использовать List<T> по потокам, то, как и в любом случае, вы не можете гарантировать порядок, в котором произойдут взаимодействия.

Ответ 3

Да. Список - это индексированная коллекция; использование Add() для размещения элементов в списке приведет к их индексированию в том порядке, в котором они добавлены.