<Type Name="IDictionary" FullName="System.Collections.IDictionary" FullNameSP="System_Collections_IDictionary" Maintainer="ecma">
  <TypeSignature Language="ILASM" Value=".class interface public abstract IDictionary implements System.Collections.ICollection, System.Collections.IEnumerable" />
  <TypeSignature Language="C#" Value="public interface IDictionary : System.Collections.ICollection" />
  <MemberOfLibrary>BCL</MemberOfLibrary>
  <AssemblyInfo>
    <AssemblyName>mscorlib</AssemblyName>
    <AssemblyPublicKey>[00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 ]</AssemblyPublicKey>
    <AssemblyVersion>2.0.0.0</AssemblyVersion>
  </AssemblyInfo>
  <Attributes>
    <Attribute>
      <AttributeName>System.Reflection.DefaultMember("Item")</AttributeName>
    </Attribute>
    <Attribute>
      <AttributeName>System.Runtime.InteropServices.ComVisible(true)</AttributeName>
    </Attribute>
  </Attributes>
  <Docs>
    <summary>
      <para>Implemented by classes that support collections of associated keys and values (i.e. dictionaries).</para>
    </summary>
    <remarks>
      <block subset="none" type="note">
        <para> Each key-value pair must have a unique non-null key, but
 the value of an association can be any object reference, including a null
 reference. The <see cref="T:System.Collections.IDictionary" /> interface allows
 the contained keys and values to be enumerated, but it does not imply any
 particular sort order.</para>
        <para>
          <see cref="T:System.Collections.IDictionary" />
 implementations fall into three categories: read-only, fixed-size,
 variable-size. A read-only implementation cannot be modified. A fixed-size
 implementation does not allow the addition or removal of elements, but it allows
 the modification of existing elements. A variable-size implementation allows the addition,
 removal and modification of elements.</para>
      </block>
    </remarks>
  </Docs>
  <Members>
    <Member MemberName="Add">
      <MemberSignature Language="ILASM" Value=".method public hidebysig virtual abstract void Add(object key, object value)" />
      <MemberSignature Language="C#" Value="public void Add (object key, object value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="key" Type="System.Object" />
        <Parameter Name="value" Type="System.Object" />
      </Parameters>
      <Docs>
        <param name="key">The <see cref="T:System.Object" /> to use as the key of the entry to add.</param>
        <param name="value">The <see cref="T:System.Object" /> to use as the value of the entry to add.</param>
        <summary>
          <para> Adds an entry with the provided key and value to the
      current instance.</para>
        </summary>
        <remarks>
          <para>If the specified key already exists in the current
      instance, this method throws a <see cref="T:System.ArgumentException" />
      exception but does not modify the
      associated value.</para>
          <para>
            <block subset="none" type="behaviors">As described
      above.</block>
          </para>
        </remarks>
        <exception cref="T:System.ArgumentNullException">
          <para>
            <paramref name="key" /> is <see langword="null" />.</para>
        </exception>
        <exception cref="T:System.ArgumentException">
          <para> An entry with the same key already exists in the current instance.</para>
        </exception>
        <exception cref="T:System.NotSupportedException">
          <para>The current instance is read-only or has a fixed size.</para>
        </exception>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="Clear">
      <MemberSignature Language="ILASM" Value=".method public hidebysig virtual abstract void Clear()" />
      <MemberSignature Language="C#" Value="public void Clear ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para> Removes all key and value pairs from the current instance.</para>
        </summary>
        <remarks>
          <para>
            <block subset="none" type="behaviors">As described
      above.</block>
          </para>
        </remarks>
        <exception cref="T:System.NotSupportedException">
          <para>The <see cref="T:System.Collections.IDictionary" /> is read-only. </para>
        </exception>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="Contains">
      <MemberSignature Language="ILASM" Value=".method public hidebysig virtual abstract bool Contains(object key)" />
      <MemberSignature Language="C#" Value="public bool Contains (object key);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="key" Type="System.Object" />
      </Parameters>
      <Docs>
        <param name="key">The key to locate in the <see cref="T:System.Collections.IDictionary" />.</param>
        <summary>
          <para> Determines whether the current instance contains an entry with the specified key.</para>
        </summary>
        <returns>
          <para>
            <see langword="true" /> if the <see cref="T:System.Collections.IDictionary" /> contains an entry with the key; otherwise, <see langword="false" />.</para>
        </returns>
        <remarks>
          <para>
            <block subset="none" type="behaviors">As described
      above.</block>
          </para>
        </remarks>
        <exception cref="T:System.ArgumentNullException">
          <paramref name="key " />is <see langword="null" />.</exception>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="GetEnumerator">
      <MemberSignature Language="ILASM" Value=".method public hidebysig virtual abstract class System.Collections.IDictionaryEnumerator GetEnumerator()" />
      <MemberSignature Language="C#" Value="public System.Collections.IDictionaryEnumerator GetEnumerator ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Collections.IDictionaryEnumerator</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para>Returns a
   <see cref="T:System.Collections.IDictionaryEnumerator" /> for the current
      instance.</para>
        </summary>
        <returns>
          <para>A <see cref="T:System.Collections.IDictionaryEnumerator" /> for the current
   instance.</para>
        </returns>
        <remarks>
          <para>
            <block subset="none" type="note">For detailed information regarding the
      use of an enumerator, see <see cref="T:System.Collections.IEnumerator" />.</block>
          </para>
          <para>
            <block subset="none" type="behaviors">As described
      above.</block>
          </para>
        </remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="IsFixedSize">
      <MemberSignature Language="ILASM" Value=".property bool IsFixedSize { public hidebysig virtual abstract specialname bool get_IsFixedSize() }" />
      <MemberSignature Language="C#" Value="public bool IsFixedSize { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para> Gets a value indicating whether the current instance
      has a fixed size.</para>
        </summary>
        <value>
          <para>
            <see langword="true" /> if the
   current instance has a fixed size;
   otherwise, <see langword="false" />. </para>
        </value>
        <remarks>
          <para>This property is read-only.</para>
          <para>
            <block subset="none" type="note">A collection with a fixed size does not
      allow the addition or removal of elements, but does allow the modification of
      existing elements.</block>
          </para>
          <para>
            <block subset="none" type="behaviors">As described
      above.</block>
          </para>
          <para>
            <block subset="none" type="default">The default of this property is
   <see langword="false" />.</block>
          </para>
          <para>
            <block subset="none" type="overrides">Override
      this method, setting the value as <see langword=" true" />
      , to prevent the addition
      and removal of the elements in the current instance.</block>
          </para>
        </remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="IsReadOnly">
      <MemberSignature Language="ILASM" Value=".property bool IsReadOnly { public hidebysig virtual abstract specialname bool get_IsReadOnly() }" />
      <MemberSignature Language="C#" Value="public bool IsReadOnly { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para> Gets a value indicating whether the current instance
      is read-only.</para>
        </summary>
        <value>
          <para>
            <see langword="true" /> if the
   current instance is read-only; otherwise,
<see langword="false" />.</para>
        </value>
        <remarks>
          <para>This property is read-only.</para>
          <para>
            <block subset="none" type="note">A collection that is read-only does not
      allow the addition, removal, or modification of elements.</block>
          </para>
          <para>
            <block subset="none" type="behaviors">As described
      above.</block>
          </para>
          <para>
            <block subset="none" type="default">The default of this property is
   <see langword="false" />.</block>
          </para>
          <para>
            <block subset="none" type="overrides">Override
      this method, setting the value as <see langword=" true" />
      , to prevent the addition, removal, and modification of the elements in
      the current instance.</block>
          </para>
        </remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="Item">
      <MemberSignature Language="ILASM" Value=".property object Item[object key] { public hidebysig virtual abstract specialname object get_Item(object key) public hidebysig virtual abstract specialname void set_Item(object key, object value) }" />
      <MemberSignature Language="C#" Value="public object this[object key] { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Object</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="key" Type="System.Object" />
      </Parameters>
      <Docs>
        <param name="key">The key of the element to get or set.</param>
        <summary>
          <para> Gets or sets the element in the current instance that is associated with the specified key.</para>
        </summary>
        <value>
          <para>The element with the specified key.</para>
        </value>
        <remarks>
          <para>
            <block subset="none" type="note">This property provides the ability to
      access a specific element in the collection by using the following syntax: <c>myCollection[index]</c>.</block>
          </para>
          <block subset="none" type="behaviors">
            <para>When setting this property, if the specified key already 
         exists in the current instance, the value is required to be replaced; otherwise,
         a new element is required to be created.</para>
          </block>
        </remarks>
        <exception cref="T:System.ArgumentNullException">
          <para>
            <paramref name="key" /> is <see langword="null" />.</para>
        </exception>
        <exception cref="T:System.NotSupportedException">
          <para>The property is set and the current instance is read-only.</para>
          <para>The property is set, <paramref name="key" /> does not exist in the collection, and the current instance has a fixed size.</para>
        </exception>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="Keys">
      <MemberSignature Language="ILASM" Value=".property class System.Collections.ICollection Keys { public hidebysig virtual abstract specialname class System.Collections.ICollection get_Keys() }" />
      <MemberSignature Language="C#" Value="public System.Collections.ICollection Keys { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Collections.ICollection</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para> Gets a <see cref="T:System.Collections.ICollection" /> containing the keys of the current
   instance.</para>
        </summary>
        <value>
          <para>A <see cref="T:System.Collections.ICollection" /> containing the keys of the current
   instance.</para>
        </value>
        <remarks>
          <para>This property is read-only.</para>
          <para>
            <block subset="none" type="behaviors">As described
      above.</block>
          </para>
        </remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="Remove">
      <MemberSignature Language="ILASM" Value=".method public hidebysig virtual abstract void Remove(object key)" />
      <MemberSignature Language="C#" Value="public void Remove (object key);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="key" Type="System.Object" />
      </Parameters>
      <Docs>
        <param name="key">The key of the entry to remove.</param>
        <summary>
          <para>Removes the entry with the specified key from the
      current instance.</para>
        </summary>
        <remarks>
          <block subset="none" type="behaviors">
            <para> If <paramref name="key" /> is not found in the 
      current instance, no exception is thrown and the current instance remains unchanged.</para>
          </block>
        </remarks>
        <exception cref="T:System.ArgumentNullException">
          <paramref name="key " /> is <see langword="null" />.</exception>
        <exception cref="T:System.NotSupportedException">
          <para>The current instance is read-only or has a fixed size.</para>
        </exception>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="Values">
      <MemberSignature Language="ILASM" Value=".property class System.Collections.ICollection Values { public hidebysig virtual abstract specialname class System.Collections.ICollection get_Values() }" />
      <MemberSignature Language="C#" Value="public System.Collections.ICollection Values { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Collections.ICollection</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>
          <para> Gets a <see cref="T:System.Collections.ICollection" /> containing the values in the current
   instance.</para>
        </summary>
        <value>
          <para>A <see cref="T:System.Collections.ICollection" /> containing the values in the current
   instance.</para>
        </value>
        <remarks>
          <para>This property is read-only.</para>
          <para>
            <block subset="none" type="behaviors">As described
      above.</block>
          </para>
        </remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
  </Members>
  <TypeExcluded>0</TypeExcluded>
  <Interfaces>
    <Interface>
      <InterfaceName>System.Collections.ICollection</InterfaceName>
    </Interface>
  </Interfaces>
</Type>
