﻿<?xml version="1.0" encoding="utf-8"?><Type Name="SortedDictionary&lt;TKey,TValue&gt;+Enumerator" FullName="System.Collections.Generic.SortedDictionary&lt;TKey,TValue&gt;+Enumerator"><TypeSignature Language="C#" Value="public struct SortedDictionary&lt;TKey,TValue&gt;.Enumerator : System.Collections.Generic.IEnumerator&lt;System.Collections.Generic.KeyValuePair&lt;TKey,TValue&gt;&gt;, System.Collections.IDictionaryEnumerator" /><TypeSignature Language="ILAsm" Value=".class nested public sequential ansi sealed beforefieldinit SortedDictionary`2/Enumerator&lt;TKey, TValue&gt; extends System.ValueType implements class System.Collections.Generic.IEnumerator`1&lt;valuetype System.Collections.Generic.KeyValuePair`2&lt;!TKey, !TValue&gt;&gt;, class System.Collections.IDictionaryEnumerator, class System.Collections.IEnumerator, class System.IDisposable" /><AssemblyInfo><AssemblyName>System</AssemblyName><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><TypeParameters><TypeParameter Name="TKey" /><TypeParameter Name="TValue" /></TypeParameters><Base><BaseTypeName>System.ValueType</BaseTypeName></Base><Interfaces><Interface><InterfaceName>System.Collections.Generic.IEnumerator&lt;System.Collections.Generic.KeyValuePair&lt;TKey,TValue&gt;&gt;</InterfaceName></Interface><Interface><InterfaceName>System.Collections.IDictionaryEnumerator</InterfaceName></Interface></Interfaces><Docs><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="T:System.Collections.Generic.SortedDictionary`2" /> generic class is a binary search tree with O(log <paramref name="n" />) retrieval, where <paramref name="n" /> is the number of elements in the dictionary. In this respect, it is similar to the <see cref="T:System.Collections.Generic.SortedList`2" /> generic class. The two classes have similar object models, and both have O(log <paramref name="n" />) retrieval. Where the two classes differ is in memory use and speed of insertion and removal:</para><list type="bullet"><item><para><see cref="T:System.Collections.Generic.SortedList`2" /> uses less memory than <see cref="T:System.Collections.Generic.SortedDictionary`2" />.</para></item><item><para><see cref="T:System.Collections.Generic.SortedDictionary`2" /> has faster insertion and removal operations for unsorted data: O(log <paramref name="n" />) as opposed to O(<paramref name="n" />) for <see cref="T:System.Collections.Generic.SortedList`2" />.</para></item><item><para>If the list is populated all at once from sorted data, <see cref="T:System.Collections.Generic.SortedList`2" /> is faster than <see cref="T:System.Collections.Generic.SortedDictionary`2" />.</para></item></list><para>Each key/value pair can be retrieved as a <see cref="T:System.Collections.Generic.KeyValuePair`2" /> structure, or as a <see cref="T:System.Collections.DictionaryEntry" /> through the nongeneric <see cref="T:System.Collections.IDictionary" /> interface.</para><para>Keys must be immutable as long as they are used as keys in the <see cref="T:System.Collections.Generic.SortedDictionary`2" />. Every key in a <see cref="T:System.Collections.Generic.SortedDictionary`2" /> must be unique. A key cannot be null, but a value can be, if the value type <paramref name="TValue" /> is a reference type.</para><para><see cref="T:System.Collections.Generic.SortedDictionary`2" /> requires a comparer implementation to perform key comparisons. You can specify an implementation of the <see cref="T:System.Collections.Generic.IComparer`1" /> generic interface by using a constructor that accepts a <paramref name="comparer" /> parameter; if you do not specify an implementation, the default generic comparer <see cref="P:System.Collections.Generic.Comparer`1.Default" /> is used. If type <paramref name="TKey" /> implements the <see cref="T:System.IComparable`1" /> generic interface, the default comparer uses that implementation.</para><para>The foreach statement of the C# language (for each in C++, For Each in Visual Basic) requires the type of each element in the collection. Since each element of the <see cref="T:System.Collections.Generic.SortedDictionary`2" /> is a key/value pair, the element type is not the type of the key or the type of the value. Instead, the element type is <see cref="T:System.Collections.Generic.KeyValuePair`2" />. The following code shows C#, C++, and Visual Basic syntax.</para><para>code reference: Generic.Dictionary#11</para><para>The foreach statement is a wrapper around the enumerator, which allows only reading from the collection, not writing to it.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Represents a collection of key/value pairs that are sorted on the key. </para></summary></Docs><Members><Member MemberName="Current"><MemberSignature Language="C#" Value="public System.Collections.Generic.KeyValuePair&lt;TKey,TValue&gt; Current { get; }" /><MemberSignature Language="ILAsm" Value=".property instance valuetype System.Collections.Generic.KeyValuePair`2&lt;!TKey, !TValue&gt; Current" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Collections.Generic.KeyValuePair&lt;TKey,TValue&gt;</ReturnType></ReturnValue><Docs><summary>To be added.</summary><value>To be added.</value><remarks>To be added.</remarks><since version=".NET 2.0" /></Docs></Member><Member MemberName="Dispose"><MemberSignature Language="C#" Value="public void Dispose ();" /><MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Dispose() cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters /><Docs><summary>To be added.</summary><remarks>To be added.</remarks><since version=".NET 2.0" /></Docs></Member><Member MemberName="MoveNext"><MemberSignature Language="C#" Value="public bool MoveNext ();" /><MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance bool MoveNext() cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue><Parameters /><Docs><summary>To be added.</summary><returns>To be added.</returns><remarks>To be added.</remarks><since version=".NET 2.0" /></Docs></Member><Member MemberName="System.Collections.IDictionaryEnumerator.Entry"><MemberSignature Language="C#" Value="System.Collections.DictionaryEntry System.Collections.IDictionaryEnumerator.Entry { get; }" /><MemberSignature Language="ILAsm" Value=".property instance valuetype System.Collections.DictionaryEntry System.Collections.IDictionaryEnumerator.Entry" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Collections.DictionaryEntry</ReturnType></ReturnValue><Docs><summary>To be added.</summary><value>To be added.</value><remarks>To be added.</remarks></Docs></Member><Member MemberName="System.Collections.IDictionaryEnumerator.Key"><MemberSignature Language="C#" Value="object System.Collections.IDictionaryEnumerator.Key { get; }" /><MemberSignature Language="ILAsm" Value=".property instance object System.Collections.IDictionaryEnumerator.Key" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Object</ReturnType></ReturnValue><Docs><summary>To be added.</summary><value>To be added.</value><remarks>To be added.</remarks></Docs></Member><Member MemberName="System.Collections.IDictionaryEnumerator.Value"><MemberSignature Language="C#" Value="object System.Collections.IDictionaryEnumerator.Value { get; }" /><MemberSignature Language="ILAsm" Value=".property instance object System.Collections.IDictionaryEnumerator.Value" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Object</ReturnType></ReturnValue><Docs><summary>To be added.</summary><value>To be added.</value><remarks>To be added.</remarks></Docs></Member><Member MemberName="System.Collections.IEnumerator.Current"><MemberSignature Language="C#" Value="object System.Collections.IEnumerator.Current { get; }" /><MemberSignature Language="ILAsm" Value=".property instance object System.Collections.IEnumerator.Current" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Object</ReturnType></ReturnValue><Docs><summary>To be added.</summary><value>To be added.</value><remarks>To be added.</remarks></Docs></Member><Member MemberName="System.Collections.IEnumerator.Reset"><MemberSignature Language="C#" Value="void IEnumerator.Reset ();" /><MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance void System.Collections.IEnumerator.Reset() cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters /><Docs><summary>To be added.</summary><remarks>To be added.</remarks></Docs></Member></Members></Type>