So, it appears that C#/.Net does in fact take into account the fact that Sets are unordered, and only allows it to be iterated (as opposed to accessed with indices).
But HashSet<T> does implement IEnumerable<T>, and therefore you can still call SequenceEqual on it. .Net does not distinguish between ordered and unordered enumerables. Random access is a different concept than enumerability.
···
On Oct 17, 2017, at 12:48 PM, Jonathan Hull via swift-evolution <swift-evolution@swift.org> wrote:
Also of interest to this discussion is the following from a discussion on C#’s version of Set:
So, it appears that C#/.Net does in fact take into account the fact that Sets are unordered, and only allows it to be iterated (as opposed to accessed with indices).