I know that List enumerator guarantees the enumeration order and respects last sort operation, I know that the Dictionary and HashSet
List
Dictionary
HashSet
Yes. It doesn't seem to be explicitly documented, but elements are enumerated in the same order as if you popped/dequeued them.