In System.Collections.Generic:
* Dictionary.cs (GetKeys, GetValues): Remove.
(SetThreshold): New function to calculate the resize threshold.
(CopyTo): Don't use foreach syntax.
(ContainsValue): Likewise. Use default equality comparer of the
value type.
(GetObjectData): Use CopyTo to copy into temporary array. Don't
save redundant _usedSlots and _threshold.
(OnDeserialization): Rewrite.
(ICollection<>.CopyTo): Forward to CopyTo.
(Enumerator._nextIndex): Rename to from _index.
(Enumerator._next, Enumerator.FixNext): Remove.
(Enumerator.Current): Rewrite to avoid need for _next.
(Enumerator.IEnumerator.Reset): Update.
(KeyCollection): Is also IEnumerable<TKey> and IEnumerable.
Update methods to conform to standard.
(KeyCollection.GetEnumerator): Restore. Return the correct type.
(KeyCollection.Enumerator): Rename from KeyEnumerator. Simple
wrapper that forwards to Dictionary<,>.Enumerator.
(ValueCollection): Likewise.
In Test/System.Collections.Generic:
* DictionaryTest.cs (SliceCollectionsEnumeratorTest): New test
based on #75053.
svn path=/trunk/mcs/; revision=46087