<Type Name="IList" FullName="System.Collections.IList" FullNameSP="System_Collections_IList" Maintainer="ecma">
  <TypeSignature Language="ILASM" Value=".class interface public abstract IList implements System.Collections.ICollection, System.Collections.IEnumerable" />
  <TypeSignature Language="C#" Value="public interface IList : 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 a collection of objects that can be individually indexed.</para>
    </summary>
    <remarks>
      <para>
        <block subset="none" type="note">
          <see cref="T:System.Collections.IList" /> implementations fall into three categories:
 read-only, fixed-size, variable-size. A read-only list cannot be modified. A
 fixed-size list allows the modification of existing elements, but does not
 allow the addition or removal of elements. A variable-size list allows the modification, addition, and
 removal of elements.</block>
      </para>
    </remarks>
  </Docs>
  <Members>
    <Member MemberName="Add">
      <MemberSignature Language="ILASM" Value=".method public hidebysig virtual abstract int32 Add(object value)" />
      <MemberSignature Language="C#" Value="public int Add (object value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="value" Type="System.Object" />
      </Parameters>
      <Docs>
        <param name="value">The <see cref="T:System.Object" /> to add to the current instance.</param>
        <summary>
          <para> Adds an item to the current instance.</para>
        </summary>
        <returns>
          <para>A <see cref="T:System.Int32" /> containing the index of the current instance into which the new element was inserted.</para>
        </returns>
        <remarks>
          <para>
            <block subset="none" type="behaviors">As described above.</block>
          </para>
          <para>
            <block subset="none" type="usage">Use
      the <see cref="M:System.Collections.IList.Add(System.Object)" /> method to add another element to the
      current instance. The index into which that element is
      added is implementation-dependent. </block>
          </para>
        </remarks>
        <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 items from the current instance.</para>
        </summary>
        <remarks>
          <para>
            <block subset="none" type="behaviors">As described above.</block>
          </para>
          <para>
            <block subset="none" type="overrides">Implementations 
      of this method can vary in how a call to this method affects the capacity of a list. Typically, the count
      is set to zero. The capacity can be set to zero, some default, or remain
      unchanged.</block>
          </para>
          <para>
            <block subset="none" type="usage">Use this method to
      delete all values from the current instance.</block>
          </para>
        </remarks>
        <exception cref="T:System.NotSupportedException">
          <para>The current instance 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 value)" />
      <MemberSignature Language="C#" Value="public bool Contains (object value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Boolean</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="value" Type="System.Object" />
      </Parameters>
      <Docs>
        <param name="value">The <see cref="T:System.Object" /> to locate in the current instance.</param>
        <summary>
          <para> Determines whether the current instance contains a specific value.</para>
        </summary>
        <returns>
          <para>
            <see langword="true" /> if the <see cref="T:System.Object" /> is found in the current instance; otherwise, <see langword="false" />.</para>
        </returns>
        <remarks>
          <para>
            <block subset="none" type="behaviors">As described above.</block>
          </para>
          <para>
            <block subset="none" type="usage">Use the <see cref="M:System.Collections.IList.Contains(System.Object)" /> method to determine if a particular <see cref="T:System.Object" /> is an element of the current
   instance.</block>
          </para>
        </remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="IndexOf">
      <MemberSignature Language="ILASM" Value=".method public hidebysig virtual abstract int32 IndexOf(object value)" />
      <MemberSignature Language="C#" Value="public int IndexOf (object value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Int32</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="value" Type="System.Object" />
      </Parameters>
      <Docs>
        <param name="value">The <see cref="T:System.Object" /> to locate in the current instance.</param>
        <summary>
          <para> Determines the index of a specific item in the current
      instance.</para>
        </summary>
        <returns>
          <para>The index of <paramref name="value" /> if found
   in the current instance; otherwise, -1.</para>
        </returns>
        <remarks>
          <para>
            <block subset="none" type="behaviors">As described above.</block>
          </para>
          <para>
            <block subset="none" type="overrides">The default
      implementations of this method use <see cref="M:System.Object.Equals(System.Object)" /> to search for value in the
      current instance.</block>
          </para>
          <para>
            <block subset="none" type="usage">Use <see cref="M:System.Collections.IList.IndexOf(System.Object)" /> to determine if a <see cref="T:System.Object" /> is contained in the current instance and, if it is
contained, its index in the current instance.</block>
          </para>
        </remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="Insert">
      <MemberSignature Language="ILASM" Value=".method public hidebysig virtual abstract void Insert(int32 index, object value)" />
      <MemberSignature Language="C#" Value="public void Insert (int index, object value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="index" Type="System.Int32" />
        <Parameter Name="value" Type="System.Object" />
      </Parameters>
      <Docs>
        <param name="index">A <see cref="T:System.Int32" /> that specifies the zero-based index at which <paramref name="value" /> is inserted.</param>
        <param name="value">The <see cref="T:System.Object" /> to insert into the current instance.</param>
        <summary>
          <para> Inserts an item to the current instance at the
      specified position.</para>
        </summary>
        <remarks>
          <para>
            <block subset="none" type="behaviors"> If <paramref name="index" /> equals the number
   of items in the <see cref="T:System.Collections.IList" />, then <paramref name="value" /> is
   required to be appended
   to the end of the current instance.
   
</block>
          </para>
          <para>
            <block subset="none" type="usage">Use <see cref="M:System.Collections.IList.Insert(System.Int32,System.Object)" />
to place a new element into a specific position in the current instance.</block>
          </para>
        </remarks>
        <exception cref="T:System.ArgumentOutOfRangeException">
          <paramref name="index" /> is not a valid index in the current instance (i.e. is greater than the number of elements in the current instance).</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="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 <see cref="T:System.Boolean" /> 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 it allows the modification of
      existing elements.</block>
          </para>
          <para>
            <block subset="none" type="behaviors">Any method that adds or removes an
      element of a collection is required to check the value of this property for
      the particular collection before adding or removing elements. If the
      value of this property is <see langword="false" />, any
      attempt to add or remove an element
      of the current instance is required to throw a <see cref="T:System.NotSupportedException" />.</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 property, setting the
   value to <see langword="true" />, in order to prevent the addition or removal of
   elements in the current instance.</block>
          </para>
          <para>
            <block subset="none" type="usage">Use
<see cref="P:System.Collections.IList.IsFixedSize" /> to secure
   the current instance from
   modification from methods, such as <see cref="M:System.Collections.IList.Add(System.Object)" /> and <see cref="M:System.Collections.IList.Remove(System.Object)" />, which add or remove elements from a
   list.</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 modification, addition, or removal of elements.</block>
          </para>
          <para>
            <block subset="none" type="behaviors">Any method that modifies,
      adds, or removes an element of a collection is required to check the
      value of this property for the particular collection before
      executing. If the value of this property is <see langword="false" />, any
      attempt to
      modify, add, or remove an element of the current instance is required to throw
      a <see cref="T:System.NotSupportedException" />.
      </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 property, setting the
      value to <see langword="true" />, in order to prevent the
      modification, addition, or removal of elements in the current
      instance.</block>
          </para>
          <para>
            <block subset="none" type="usage">Use <see cref="P:System.Collections.IList.IsReadOnly" /> to
   secure the current instance from
   modification from methods, such as <see cref="M:System.Collections.IList.Add(System.Object)" /> and <see cref="M:System.Collections.IList.Remove(System.Object)" />, which modify, add, or remove elements
   from a list.</block>
          </para>
        </remarks>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="Item">
      <MemberSignature Language="ILASM" Value=".property object Item[int32 index] { public hidebysig virtual abstract specialname object get_Item(int32 index) public hidebysig virtual abstract specialname void set_Item(int32 index, object value) }" />
      <MemberSignature Language="C#" Value="public object this[int index] { set; get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.Object</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="index" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="index">A <see cref="T:System.Int32" /> that specifies the zero-based index of the element to get or set.</param>
        <summary>
          <para> Gets or sets the element at the specified index in the current
      instance.</para>
        </summary>
        <value>
          <para>The element at the specified index in the current instance.</para>
        </value>
        <remarks>
          <para>
            <block subset="none" type="behaviors">As described above.</block>
          </para>
          <para>
            <block subset="none" type="usage">Use this property
      for subscript indexing for the current instance in the following form: <c> myCollection[index]</c>.
</block>
          </para>
        </remarks>
        <exception cref="T:System.ArgumentOutOfRangeException">
          <paramref name="index" /> is not a valid index in the current instance.</exception>
        <exception cref="T:System.NotSupportedException">The property is being set and the current instance is read-only.</exception>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="Remove">
      <MemberSignature Language="ILASM" Value=".method public hidebysig virtual abstract void Remove(object value)" />
      <MemberSignature Language="C#" Value="public void Remove (object value);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="value" Type="System.Object" />
      </Parameters>
      <Docs>
        <param name="value">The <see cref="T:System.Object" /> to remove from the current instance.</param>
        <summary>
          <para> Removes the first occurrence of a specified <see cref="T:System.Object" /> from
   the current instance.</para>
        </summary>
        <remarks>
          <block subset="none" type="behaviors">
            <para>As described above.</para>
            <para>In addition, if <paramref name="value" />
   is <see langword="null" /> or is not found in the current instance, it is required that no
   exception be thrown and the current instance remain unchanged.</para>
          </block>
          <para>
            <block subset="none" type="overrides">The default implementations
   of this method use <see cref="M:System.Object.Equals(System.Object)" /> to search for value
   in the current instance.</block>
          </para>
          <para>
            <block subset="none" type="usage">Use <see cref="M:System.Collections.IList.Remove(System.Object)" />
to delete a specified <see cref="T:System.Object" /> from the current instance.</block>
          </para>
        </remarks>
        <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="RemoveAt">
      <MemberSignature Language="ILASM" Value=".method public hidebysig virtual abstract void RemoveAt(int32 index)" />
      <MemberSignature Language="C#" Value="public void RemoveAt (int index);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="index" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="index">A <see cref="T:System.Int32" /> that specifies the zero-based index of the item to remove.</param>
        <summary>
          <para> Removes the item at the specified
      index of the current instance.</para>
        </summary>
        <remarks>
          <para>
            <block subset="none" type="behaviors">As described above.</block>
          </para>
          <para>
            <block subset="none" type="usage">Use <see cref="M:System.Collections.IList.RemoveAt(System.Int32)" /> to delete a specified <see cref="T:System.Object" /> from the current instance.</block>
          </para>
        </remarks>
        <exception cref="T:System.ArgumentOutOfRangeException">
          <paramref name="index" /> is not a valid index in current instance.</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>
  </Members>
  <TypeExcluded>0</TypeExcluded>
  <Interfaces>
    <Interface>
      <InterfaceName>System.Collections.ICollection</InterfaceName>
    </Interface>
  </Interfaces>
</Type>
