public static TSource ElementAt <TSource>(this SortedSet <TSource> source, int index) => ValueReadOnlyCollection.ElementAt <ValueWrapper <TSource>, SortedSet <TSource> .Enumerator, TSource>(new ValueWrapper <TSource>(source), index);
public static KeyValuePair <TKey, TValue> ElementAt <TKey, TValue>(this SortedDictionary <TKey, TValue> source, int index) => ValueReadOnlyCollection.ElementAt <ValueWrapper <TKey, TValue>, SortedDictionary <TKey, TValue> .Enumerator, KeyValuePair <TKey, TValue> >(new ValueWrapper <TKey, TValue>(source), index);
public static Option <TSource> ElementAt <TSource>(this LinkedList <TSource> source, int index) => ValueReadOnlyCollection.ElementAt <ValueWrapper <TSource>, LinkedList <TSource> .Enumerator, TSource>(new ValueWrapper <TSource>(source), index);
public static Option <TSource> ElementAt <TSource>(this ImmutableHashSet <TSource> source, int index) => ValueReadOnlyCollection.ElementAt <ValueWrapper <TSource>, ImmutableHashSet <TSource> .Enumerator, TSource>(new ValueWrapper <TSource>(source), index);
public static Option <TKey> ElementAt <TKey, TValue>(this SortedDictionary <TKey, TValue> .KeyCollection source, int index) => ValueReadOnlyCollection.ElementAt <ValueWrapper <TKey, TValue>, SortedDictionary <TKey, TValue> .KeyCollection.Enumerator, TKey>(new ValueWrapper <TKey, TValue>(source), index);
public static TValue ElementAt <TKey, TValue>(this Dictionary <TKey, TValue> .ValueCollection source, int index) => ValueReadOnlyCollection.ElementAt <ValueWrapper <TKey, TValue>, Dictionary <TKey, TValue> .ValueCollection.Enumerator, TValue>(new ValueWrapper <TKey, TValue>(source), index);