IEnumerable/IEnumerable<T>
makes no guarantees about ordering, but the implementations that use IEnumerable/IEnumerable<T>
may or may not guarantee ordering.
For instance, if you enumerate List<T>
, order is guaranteed, but if you enumerate HashSet<T>
no such guarantee is provided, yet both will be enumerated using the IEnumerable<T>
interface.