[swift-evolution] [Draft] Rename Sequence.elementsEqual

Adam Kemp adam_kemp at apple.com
Tue Oct 17 14:54:30 CDT 2017


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 at swift.org> wrote:
> 
> Also of interest to this discussion is the following from a discussion on C#’s version of Set:
> 
>> HashSet<T> is more or less modeled after a mathematical set <http://en.wikipedia.org/wiki/Set_(mathematics)>, which means that:
>> 
>> It may contain no duplicate values.
>> Its elements are in no particular order; therefore the type does not implement the IList<T> <http://msdn.microsoft.com/en-us/library/5y536ey6.aspx>interface, but the more basic ICollection<T> <http://msdn.microsoft.com/en-us/library/92t2ye13.aspx>. As a consequence, elements inside a hash set cannot be randomly accessed through indices; they can only be iterated over through an enumerator.
> 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).
> 
> Thanks,
> Jon
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20171017/19eed70e/attachment.html>


More information about the swift-evolution mailing list