Imported Upstream version 3.6.0

Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
This commit is contained in:
Jo Shields
2014-08-13 10:39:27 +01:00
commit a575963da9
50588 changed files with 8155799 additions and 0 deletions

View File

@@ -0,0 +1 @@
cddcab53eef6b470810f5c6789f33a072d30321d

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,214 @@
<?xml version="1.0" encoding="utf-8"?>
<Type Name="CaseInsensitiveComparer" FullName="System.Collections.CaseInsensitiveComparer">
<TypeSignature Maintainer="auto" Language="C#" Value="public class CaseInsensitiveComparer : System.Collections.IComparer" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi serializable beforefieldinit CaseInsensitiveComparer extends System.Object implements class System.Collections.IComparer" />
<AssemblyInfo>
<AssemblyName>mscorlib</AssemblyName>
<AssemblyPublicKey>[00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00]</AssemblyPublicKey>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ThreadSafetyStatement>Gtk# is thread aware, but not thread safe; See the &lt;link location="node:gtk-sharp/programming/threads"&gt;Gtk# Thread Programming&lt;/link&gt; for details.</ThreadSafetyStatement>
<Base>
<BaseTypeName>System.Object</BaseTypeName>
</Base>
<Interfaces>
<Interface>
<InterfaceName>System.Collections.IComparer</InterfaceName>
</Interface>
</Interfaces>
<Attributes>
<Attribute>
<AttributeName>System.Runtime.InteropServices.ComVisible(true)</AttributeName>
</Attribute>
</Attributes>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>
<see cref="T:System.Collections.CaseInsensitiveComparer" /> implements the <see cref="T:System.Collections.IComparer" /> interface supporting case-insensitive comparisons on strings, just as <see cref="T:System.Collections.CaseInsensitiveHashCodeProvider" /> implements the <see cref="T:System.Collections.IHashCodeProvider" /> interface supporting case-insensitive comparisons on strings.</para>
<para>The <see cref="T:System.Collections.Comparer" /> class is the default implementation of the <see cref="T:System.Collections.IComparer" /> interface and performs case-sensitive string comparisons.</para>
<para>The objects used as keys by a <see cref="T:System.Collections.Hashtable" /> are required to override the <see cref="M:System.Object.GetHashCode" /> method (or the <see cref="T:System.Collections.IHashCodeProvider" /> interface) and the <see cref="M:System.Object.Equals(System.Object)" /> method (or the <see cref="T:System.Collections.IComparer" /> interface). The implementation of both methods or interfaces must handle case sensitivity the same way; otherwise, the <see cref="T:System.Collections.Hashtable" /> might behave incorrectly. For example, when creating a <see cref="T:System.Collections.Hashtable" />, you must use this class with the <see cref="T:System.Collections.CaseInsensitiveHashCodeProvider" /> class or any case-insensitive <see cref="T:System.Collections.IHashCodeProvider" /> implementation.</para>
<para>String comparisons might have different results depending on the culture. For more information on culture-specific comparisons, see the <see cref="N:System.Globalization" /> namespace and <format type="text/html"><a href="9a59696b-d89b-45bd-946d-c75da4732d02">Encoding and Localization</a></format>.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Compares two objects for equivalence, ignoring the case of strings.</para>
</summary>
</Docs>
<Members>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public CaseInsensitiveComparer ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue />
<Parameters />
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>When the <see cref="T:System.Collections.CaseInsensitiveComparer" /> instance is created using this constructor, the <see cref="P:System.Threading.Thread.CurrentCulture" /> of the current thread is saved. Comparison procedures use the saved culture to determine the sort order and casing rules; therefore, string comparisons might have different results depending on the culture. For more information on culture-specific comparisons, see the <see cref="N:System.Globalization" /> namespace and <format type="text/html"><a href="9a59696b-d89b-45bd-946d-c75da4732d02">Encoding and Localization</a></format>.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Initializes a new instance of the <see cref="T:System.Collections.CaseInsensitiveComparer" /> class using the <see cref="P:System.Threading.Thread.CurrentCulture" /> of the current thread.</para>
</summary>
</Docs>
</Member>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public CaseInsensitiveComparer (System.Globalization.CultureInfo culture);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(class System.Globalization.CultureInfo culture) cil managed" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue />
<Parameters>
<Parameter Name="culture" Type="System.Globalization.CultureInfo" />
</Parameters>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Comparison procedures use the specified <see cref="T:System.Globalization.CultureInfo" /> to determine the sort order and casing rules. String comparisons might have different results depending on the culture. For more information on culture-specific comparisons, see the <see cref="N:System.Globalization" /> namespace and <format type="text/html"><a href="9a59696b-d89b-45bd-946d-c75da4732d02">Encoding and Localization</a></format>.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Initializes a new instance of the <see cref="T:System.Collections.CaseInsensitiveComparer" /> class using the specified <see cref="T:System.Globalization.CultureInfo" />.</para>
</summary>
<param name="culture">
<attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Globalization.CultureInfo" /> to use for the new <see cref="T:System.Collections.CaseInsensitiveComparer" />. </param>
</Docs>
</Member>
<Member MemberName="Compare">
<MemberSignature Language="C#" Value="public int Compare (object a, object b);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance int32 Compare(object a, object b) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Int32</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="a" Type="System.Object" />
<Parameter Name="b" Type="System.Object" />
</Parameters>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>If <paramref name="a" /> and <paramref name="b" /> are both strings, this method uses <see cref="M:System.Globalization.CompareInfo.Compare(System.String,System.String)" /> to compare the strings with the casing ignored; otherwise, it uses the <see cref="T:System.IComparable" /> implementation of either object. That is, if <paramref name="a" /> implements <see cref="T:System.IComparable" />, then this method returns the result of <paramref name="a" />. CompareTo (<paramref name="b" />); otherwise, if <paramref name="b" /> implements <see cref="T:System.IComparable" />, then it returns the negated result of <paramref name="b" />. CompareTo (<paramref name="a" />).</para>
<para>Comparing null with any type is allowed and does not generate an exception when using <see cref="T:System.IComparable" />. When sorting, null is considered to be less than any other object.</para>
<para>String comparisons might have different results depending on the culture. For more information on culture-specific comparisons, see the <see cref="N:System.Globalization" /> namespace and <format type="text/html"><a href="9a59696b-d89b-45bd-946d-c75da4732d02">Encoding and Localization</a></format>.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Performs a case-insensitive comparison of two objects of the same type and returns a value indicating whether one is less than, equal to, or greater than the other.</para>
</summary>
<returns>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>A signed integer that indicates the relative values of <paramref name="a" /> and <paramref name="b" />, as shown in the following table.</para>
<list type="table">
<listheader>
<item>
<term>
<para>Value </para>
</term>
<description>
<para>Meaning </para>
</description>
</item>
</listheader>
<item>
<term>
<para>Less than zero </para>
</term>
<description>
<para>
<paramref name="a" /> is less than <paramref name="b" />, with casing ignored. </para>
</description>
</item>
<item>
<term>
<para>Zero </para>
</term>
<description>
<para>
<paramref name="a" /> equals <paramref name="b" />, with casing ignored. </para>
</description>
</item>
<item>
<term>
<para>Greater than zero </para>
</term>
<description>
<para>
<paramref name="a" /> is greater than <paramref name="b" />, with casing ignored. </para>
</description>
</item>
</list>
</returns>
<param name="a">
<attribution license="cc4" from="Microsoft" modified="false" />The first object to compare. </param>
<param name="b">
<attribution license="cc4" from="Microsoft" modified="false" />The second object to compare. </param>
</Docs>
</Member>
<Member MemberName="Default">
<MemberSignature Language="C#" Value="public static System.Collections.CaseInsensitiveComparer Default { get; }" />
<MemberSignature Language="ILAsm" Value=".property class System.Collections.CaseInsensitiveComparer Default" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Collections.CaseInsensitiveComparer</ReturnType>
</ReturnValue>
<Docs>
<value>To be added: an object of type 'CaseInsensitiveComparer'</value>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>When the <see cref="T:System.Collections.CaseInsensitiveComparer" /> instance is created using the parameterless constructor, the <see cref="P:System.Threading.Thread.CurrentCulture" /> of the current thread is saved. Comparison procedures use the saved culture to determine the sort order and casing rules; therefore, string comparisons might have different results depending on the culture. For more information on culture-specific comparisons, see the <see cref="N:System.Globalization" /> namespace and <format type="text/html"><a href="9a59696b-d89b-45bd-946d-c75da4732d02">Encoding and Localization</a></format>.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Gets an instance of <see cref="T:System.Collections.CaseInsensitiveComparer" /> that is associated with the <see cref="P:System.Threading.Thread.CurrentCulture" /> of the current thread and that is always available.</para>
</summary>
</Docs>
</Member>
<Member MemberName="DefaultInvariant">
<MemberSignature Language="C#" Value="public static System.Collections.CaseInsensitiveComparer DefaultInvariant { get; }" />
<MemberSignature Language="ILAsm" Value=".property class System.Collections.CaseInsensitiveComparer DefaultInvariant" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Collections.CaseInsensitiveComparer</ReturnType>
</ReturnValue>
<Docs>
<value>To be added.</value>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Comparison procedures use the <see cref="P:System.Globalization.CultureInfo.InvariantCulture" /> to determine the sort order and casing rules. String comparisons might have different results depending on the culture. For more information on culture-specific comparisons, see the <see cref="N:System.Globalization" /> namespace and <format type="text/html"><a href="9a59696b-d89b-45bd-946d-c75da4732d02">Encoding and Localization</a></format>.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Gets an instance of <see cref="T:System.Collections.CaseInsensitiveComparer" /> that is associated with <see cref="P:System.Globalization.CultureInfo.InvariantCulture" /> and that is always available.</para>
</summary>
</Docs>
</Member>
</Members>
</Type>

View File

@@ -0,0 +1,171 @@
<?xml version="1.0" encoding="utf-8"?>
<Type Name="CaseInsensitiveHashCodeProvider" FullName="System.Collections.CaseInsensitiveHashCodeProvider">
<TypeSignature Maintainer="auto" Language="C#" Value="public class CaseInsensitiveHashCodeProvider : System.Collections.IHashCodeProvider" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi serializable beforefieldinit CaseInsensitiveHashCodeProvider extends System.Object implements class System.Collections.IHashCodeProvider" />
<AssemblyInfo>
<AssemblyName>mscorlib</AssemblyName>
<AssemblyPublicKey>[00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00]</AssemblyPublicKey>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ThreadSafetyStatement>Gtk# is thread aware, but not thread safe; See the &lt;link location="node:gtk-sharp/programming/threads"&gt;Gtk# Thread Programming&lt;/link&gt; for details.</ThreadSafetyStatement>
<Base>
<BaseTypeName>System.Object</BaseTypeName>
</Base>
<Interfaces>
<Interface>
<InterfaceName>System.Collections.IHashCodeProvider</InterfaceName>
</Interface>
</Interfaces>
<Attributes>
<Attribute>
<AttributeName>System.Obsolete("Please use StringComparer instead.")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>System.Runtime.InteropServices.ComVisible(true)</AttributeName>
</Attribute>
</Attributes>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>
<see cref="T:System.Collections.CaseInsensitiveHashCodeProvider" /> implements the <see cref="T:System.Collections.IHashCodeProvider" /> interface supporting case-insensitive comparisons on strings, just as <see cref="T:System.Collections.CaseInsensitiveComparer" /> implements the <see cref="T:System.Collections.IComparer" /> interface supporting case-insensitive comparisons on strings.</para>
<para>The objects used as keys by a <see cref="T:System.Collections.Hashtable" /> are required to override the <see cref="M:System.Object.GetHashCode" /> method (or the <see cref="T:System.Collections.IHashCodeProvider" /> interface) and the <see cref="M:System.Object.Equals(System.Object)" /> method (or the <see cref="T:System.Collections.IComparer" /> interface). The implementation of both methods or interfaces must handle case sensitivity the same way; otherwise, the <see cref="T:System.Collections.Hashtable" /> might behave incorrectly. For example, when creating a <see cref="T:System.Collections.Hashtable" />, you must use this class with the <see cref="T:System.Collections.CaseInsensitiveComparer" /> class or any case-insensitive <see cref="T:System.Collections.IComparer" /> implementation.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Supplies a hash code for an object, using a hashing algorithm that ignores the case of strings.</para>
</summary>
</Docs>
<Members>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public CaseInsensitiveHashCodeProvider ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue />
<Parameters />
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>When the <see cref="T:System.Collections.CaseInsensitiveHashCodeProvider" /> instance is created using this constructor, the <see cref="P:System.Threading.Thread.CurrentCulture" /> of the current thread is saved. Comparison procedures use the saved culture to determine the casing rules; therefore, hash code comparisons might have different results depending on the culture. For more information on culture-specific comparisons, see the <see cref="N:System.Globalization" /> namespace and <format type="text/html"><a href="9a59696b-d89b-45bd-946d-c75da4732d02">Encoding and Localization</a></format>.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Initializes a new instance of the <see cref="T:System.Collections.CaseInsensitiveHashCodeProvider" /> class using the <see cref="P:System.Threading.Thread.CurrentCulture" /> of the current thread.</para>
</summary>
</Docs>
</Member>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public CaseInsensitiveHashCodeProvider (System.Globalization.CultureInfo culture);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(class System.Globalization.CultureInfo culture) cil managed" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue />
<Parameters>
<Parameter Name="culture" Type="System.Globalization.CultureInfo" />
</Parameters>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Comparison procedures use the specified <see cref="T:System.Globalization.CultureInfo" /> to determine the casing rules. Hash code comparisons might have different results depending on the culture. For more information on culture-specific comparisons, see the <see cref="N:System.Globalization" /> namespace and <format type="text/html"><a href="9a59696b-d89b-45bd-946d-c75da4732d02">Encoding and Localization</a></format>.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Initializes a new instance of the <see cref="T:System.Collections.CaseInsensitiveHashCodeProvider" /> class using the specified <see cref="T:System.Globalization.CultureInfo" />.</para>
</summary>
<param name="culture">
<attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Globalization.CultureInfo" /> to use for the new <see cref="T:System.Collections.CaseInsensitiveHashCodeProvider" />. </param>
</Docs>
</Member>
<Member MemberName="Default">
<MemberSignature Language="C#" Value="public static System.Collections.CaseInsensitiveHashCodeProvider Default { get; }" />
<MemberSignature Language="ILAsm" Value=".property class System.Collections.CaseInsensitiveHashCodeProvider Default" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Collections.CaseInsensitiveHashCodeProvider</ReturnType>
</ReturnValue>
<Docs>
<value>To be added: an object of type 'CaseInsensitiveHashCodeProvider'</value>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>When the <see cref="T:System.Collections.CaseInsensitiveHashCodeProvider" /> instance is created using the parameterless constructor, the <see cref="P:System.Threading.Thread.CurrentCulture" /> of the current thread is saved. Comparison procedures use the saved culture to determine the casing rules; therefore, hash code comparisons might have different results depending on the culture. For more information on culture-specific comparisons, see the <see cref="N:System.Globalization" /> namespace and <format type="text/html"><a href="9a59696b-d89b-45bd-946d-c75da4732d02">Encoding and Localization</a></format>.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Gets an instance of <see cref="T:System.Collections.CaseInsensitiveHashCodeProvider" /> that is associated with the <see cref="P:System.Threading.Thread.CurrentCulture" /> of the current thread and that is always available.</para>
</summary>
</Docs>
</Member>
<Member MemberName="DefaultInvariant">
<MemberSignature Language="C#" Value="public static System.Collections.CaseInsensitiveHashCodeProvider DefaultInvariant { get; }" />
<MemberSignature Language="ILAsm" Value=".property class System.Collections.CaseInsensitiveHashCodeProvider DefaultInvariant" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Collections.CaseInsensitiveHashCodeProvider</ReturnType>
</ReturnValue>
<Docs>
<value>To be added.</value>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Comparison procedures use the <see cref="P:System.Globalization.CultureInfo.InvariantCulture" /> to determine the casing rules. Hash code comparisons might have different results depending on the culture. For more information on culture-specific comparisons, see the <see cref="N:System.Globalization" /> namespace and <format type="text/html"><a href="9a59696b-d89b-45bd-946d-c75da4732d02">Encoding and Localization</a></format>.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Gets an instance of <see cref="T:System.Collections.CaseInsensitiveHashCodeProvider" /> that is associated with <see cref="P:System.Globalization.CultureInfo.InvariantCulture" /> and that is always available.</para>
</summary>
</Docs>
</Member>
<Member MemberName="GetHashCode">
<MemberSignature Language="C#" Value="public int GetHashCode (object obj);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance int32 GetHashCode(object obj) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Int32</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="obj" Type="System.Object" />
</Parameters>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The return value from this method must not be persisted for two reasons. First, the hash function of a class might be altered to generate a better distribution, thereby rendering any values from the old hash function useless. Second, the default implementation of this class does not guarantee that the same value will be returned by different instances.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Returns a hash code for the given object, using a hashing algorithm that ignores the case of strings.</para>
</summary>
<returns>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>A hash code for the given object, using a hashing algorithm that ignores the case of strings.</para>
</returns>
<param name="obj">
<attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Object" /> for which a hash code is to be returned. </param>
</Docs>
</Member>
</Members>
</Type>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,235 @@
<?xml version="1.0" encoding="utf-8"?>
<Type Name="Comparer" FullName="System.Collections.Comparer" FullNameSP="System_Collections_Comparer" Maintainer="ecma">
<TypeSignature Language="ILASM" Value=".class public sealed serializable Comparer extends System.Object implements System.Collections.IComparer" />
<TypeSignature Language="C#" Value="public sealed class Comparer : System.Collections.IComparer, System.Runtime.Serialization.ISerializable" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi serializable sealed beforefieldinit Comparer extends System.Object implements class System.Collections.IComparer, class System.Runtime.Serialization.ISerializable" />
<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>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ThreadingSafetyStatement>All public static members of this type are safe for multithreaded operations. No instance members are guaranteed to be thread safe.</ThreadingSafetyStatement>
<Base>
<BaseTypeName>System.Object</BaseTypeName>
</Base>
<Interfaces>
<Interface>
<InterfaceName>System.Collections.IComparer</InterfaceName>
</Interface>
<Interface>
<InterfaceName>System.Runtime.Serialization.ISerializable</InterfaceName>
</Interface>
</Interfaces>
<Attributes>
<Attribute>
<AttributeName>System.Runtime.InteropServices.ComVisible(true)</AttributeName>
</Attribute>
</Attributes>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>This class is the default implementation of the <see cref="T:System.Collections.IComparer" /> interface. The <see cref="T:System.Collections.CaseInsensitiveComparer" /> class is the implementation of the <see cref="T:System.Collections.IComparer" /> interface that performs case-insensitive string comparisons.</para>
<para>Comparison procedures use the <see cref="P:System.Threading.Thread.CurrentCulture" /> of the current thread unless otherwise specified. String comparisons might have different results depending on the culture. For more information on culture-specific comparisons, see the <see cref="N:System.Globalization" /> namespace and <format type="text/html"><a href="9a59696b-d89b-45bd-946d-c75da4732d02">Encoding and Localization</a></format>.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Compares two objects for equivalence, where string comparisons are case-sensitive.</para>
</summary>
</Docs>
<Members>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public Comparer (System.Globalization.CultureInfo culture);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(class System.Globalization.CultureInfo culture) cil managed" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters>
<Parameter Name="culture" Type="System.Globalization.CultureInfo" />
</Parameters>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Comparison procedures use the specified <see cref="T:System.Globalization.CultureInfo" /> to determine the sort order and casing rules. String comparisons might have different results depending on the culture. For more information on culture-specific comparisons, see the <see cref="N:System.Globalization" /> namespace and <format type="text/html"><a href="9a59696b-d89b-45bd-946d-c75da4732d02">Encoding and Localization</a></format>.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Initializes a new instance of the <see cref="T:System.Collections.Comparer" /> class using the specified <see cref="T:System.Globalization.CultureInfo" />.</para>
</summary>
<param name="culture">
<attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Globalization.CultureInfo" /> to use for the new <see cref="T:System.Collections.Comparer" />. </param>
</Docs>
</Member>
<Member MemberName="Compare">
<MemberSignature Language="ILASM" Value=".method public final hidebysig virtual int32 Compare(object a, object b)" />
<MemberSignature Language="C#" Value="public int Compare (object a, object b);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance int32 Compare(object a, object b) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Int32</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="a" Type="System.Object" />
<Parameter Name="b" Type="System.Object" />
</Parameters>
<Docs>
<exception cref="T:System.ArgumentException">
<para>Both <paramref name="a" /> and <paramref name="b" /> are not <see langword="null" /> and do not implement the <see cref="T:System.IComparable" /> interface.</para>
<para> -or-</para>
<para>Both <paramref name="a" /> and <paramref name="b" /> are not <see langword="null" /> and are not assignment-compatible types.</para>
</exception>
<param name="a">
<attribution license="cc4" from="Microsoft" modified="false" />The first object to compare. </param>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>If <paramref name="a" /> implements <see cref="T:System.IComparable" />, then <paramref name="a" />. CompareTo (<paramref name="b" />) is returned; otherwise, if <paramref name="b" /> implements <see cref="T:System.IComparable" />, then the negated result of <paramref name="b" />. CompareTo (<paramref name="a" />) is returned.</para>
<para>Comparing null with any type is allowed and does not generate an exception when using <see cref="T:System.IComparable" />. When sorting, null is considered to be less than any other object.</para>
<para>String comparisons might have different results depending on the culture. For more information on culture-specific comparisons, see the <see cref="N:System.Globalization" /> namespace and <format type="text/html"><a href="9a59696b-d89b-45bd-946d-c75da4732d02">Encoding and Localization</a></format>.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Performs a case-sensitive comparison of two objects of the same type and returns a value indicating whether one is less than, equal to, or greater than the other.</para>
</summary>
<returns>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>A signed integer that indicates the relative values of <paramref name="a" /> and <paramref name="b" />, as shown in the following table.</para>
<list type="table">
<listheader>
<item>
<term>
<para>Value </para>
</term>
<description>
<para>Meaning </para>
</description>
</item>
</listheader>
<item>
<term>
<para>Less than zero </para>
</term>
<description>
<para>
<paramref name="a" /> is less than <paramref name="b" />. </para>
</description>
</item>
<item>
<term>
<para>Zero </para>
</term>
<description>
<para>
<paramref name="a" /> equals <paramref name="b" />. </para>
</description>
</item>
<item>
<term>
<para>Greater than zero </para>
</term>
<description>
<para>
<paramref name="a" /> is greater than <paramref name="b" />. </para>
</description>
</item>
</list>
</returns>
<param name="a">
<attribution license="cc4" from="Microsoft" modified="false" />The first object to compare. </param>
<param name="b">
<attribution license="cc4" from="Microsoft" modified="false" />The second object to compare. </param>
</Docs>
<Excluded>0</Excluded>
</Member>
<Member MemberName="Default">
<MemberSignature Language="ILASM" Value=".field public static initOnly class System.Collections.Comparer Default" />
<MemberSignature Language="C#" Value="public static readonly System.Collections.Comparer Default;" />
<MemberSignature Language="ILAsm" Value=".field public static initonly class System.Collections.Comparer Default" />
<MemberType>Field</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Collections.Comparer</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Comparison procedures use the <see cref="P:System.Threading.Thread.CurrentCulture" /> of the current thread to determine the sort order and casing rules. String comparisons might have different results depending on the culture. For more information on culture-specific comparisons, see the <see cref="N:System.Globalization" /> namespace and <format type="text/html"><a href="9a59696b-d89b-45bd-946d-c75da4732d02">Encoding and Localization</a></format>.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Represents an instance of <see cref="T:System.Collections.Comparer" /> that is associated with the <see cref="P:System.Threading.Thread.CurrentCulture" /> of the current thread. This field is read-only.</para>
</summary>
</Docs>
<Excluded>0</Excluded>
</Member>
<Member MemberName="DefaultInvariant">
<MemberSignature Language="C#" Value="public static readonly System.Collections.Comparer DefaultInvariant;" />
<MemberSignature Language="ILAsm" Value=".field public static initonly class System.Collections.Comparer DefaultInvariant" />
<MemberType>Field</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Collections.Comparer</ReturnType>
</ReturnValue>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Comparison procedures use the <see cref="P:System.Globalization.CultureInfo.InvariantCulture" /> to determine the sort order and casing rules. String comparisons might have different results depending on the culture. For more information on culture-specific comparisons, see the <see cref="N:System.Globalization" /> namespace and <format type="text/html"><a href="9a59696b-d89b-45bd-946d-c75da4732d02">Encoding and Localization</a></format>.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Represents an instance of <see cref="T:System.Collections.Comparer" /> that is associated with <see cref="P:System.Globalization.CultureInfo.InvariantCulture" />. This field is read-only.</para>
</summary>
</Docs>
</Member>
<Member MemberName="GetObjectData">
<MemberSignature Language="C#" Value="public void GetObjectData (System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void GetObjectData(class System.Runtime.Serialization.SerializationInfo info, valuetype System.Runtime.Serialization.StreamingContext context) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="info" Type="System.Runtime.Serialization.SerializationInfo" />
<Parameter Name="context" Type="System.Runtime.Serialization.StreamingContext" />
</Parameters>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>While the <see cref="M:System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)" /> method is not visible to COM clients by default, inheriting the <see cref="T:System.Collections.Comparer" /> class can expose it and can cause undesirable behavior in COM clients.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Populates a <see cref="T:System.Runtime.Serialization.SerializationInfo" /> object with the data required for serialization. </para>
</summary>
<param name="info">
<attribution license="cc4" from="Microsoft" modified="false" />The object to populate with data.</param>
<param name="context">
<attribution license="cc4" from="Microsoft" modified="false" />The context information about the source or destination of the serialization.</param>
</Docs>
</Member>
</Members>
<TypeExcluded>0</TypeExcluded>
</Type>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,128 @@
<?xml version="1.0" encoding="utf-8"?>
<Type Name="DictionaryEntry" FullName="System.Collections.DictionaryEntry" FullNameSP="System_Collections_DictionaryEntry" Maintainer="ecma">
<TypeSignature Language="ILASM" Value=".class public sequential sealed serializable DictionaryEntry extends System.ValueType" />
<TypeSignature Language="C#" Value="public struct DictionaryEntry" />
<TypeSignature Language="ILAsm" Value=".class public sequential ansi serializable sealed beforefieldinit DictionaryEntry extends System.ValueType" />
<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>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ThreadingSafetyStatement>All public static members of this type are safe for multithreaded operations. No instance members are guaranteed to be thread safe.</ThreadingSafetyStatement>
<Base>
<BaseTypeName>System.ValueType</BaseTypeName>
</Base>
<Interfaces />
<Attributes>
<Attribute>
<AttributeName>System.Runtime.InteropServices.ComVisible(true)</AttributeName>
</Attribute>
</Attributes>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The <see cref="P:System.Collections.IDictionaryEnumerator.Entry" /> method returns an instance of this type.</para>
<para>The foreach statement of the C# language (for each in Visual 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.IDictionary" /> 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.DictionaryEntry" />. For example: </para>
<para>code reference: System.Collections.DictionaryEntry#01</para>
<para>The foreach statement is a wrapper around the enumerator, which only allows reading from, not writing to, the collection.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Defines a dictionary key/value pair that can be set or retrieved.</para>
</summary>
</Docs>
<Members>
<Member MemberName=".ctor">
<MemberSignature Language="ILASM" Value="public rtspecialname specialname instance void .ctor(object key, object value)" />
<MemberSignature Language="C#" Value="public DictionaryEntry (object key, object value);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(object key, object value) cil managed" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue />
<Parameters>
<Parameter Name="key" Type="System.Object" />
<Parameter Name="value" Type="System.Object" />
</Parameters>
<Docs>
<exception cref="T:System.ArgumentNullException">
<paramref name="key" /> is <see langword="null" />.</exception>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>In the dnprdnlong <paramref name="key" /> can be null.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Initializes an instance of the <see cref="T:System.Collections.DictionaryEntry" /> type with the specified key and value.</para>
</summary>
<param name="key">
<attribution license="cc4" from="Microsoft" modified="false" />The object defined in each key/value pair. </param>
<param name="value">
<attribution license="cc4" from="Microsoft" modified="false" />The definition associated with <paramref name="key" />. </param>
</Docs>
<Excluded>0</Excluded>
</Member>
<Member MemberName="Key">
<MemberSignature Language="ILASM" Value=".property object Key { public hidebysig specialname instance object get_Key() public hidebysig specialname instance void set_Key(object value) }" />
<MemberSignature Language="C#" Value="public object Key { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance object Key" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Object</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<value>
<para>A <see cref="T:System.Object" /> representing the
key of the current <see cref="T:System.Collections.DictionaryEntry" /> .</para>
</value>
<remarks>To be added.</remarks>
<exception cref="T:System.ArgumentNullException">Set <paramref name="value" /> is <see langword="null" />.</exception>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Gets or sets the key in the key/value pair.</para>
</summary>
</Docs>
<Excluded>0</Excluded>
</Member>
<Member MemberName="Value">
<MemberSignature Language="ILASM" Value=".property object Value { public hidebysig specialname instance object get_Value() public hidebysig specialname instance void set_Value(object value) }" />
<MemberSignature Language="C#" Value="public object Value { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance object Value" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Object</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<value>
<para>A <see cref="T:System.Object" /> representing the
content of the current <see cref="T:System.Collections.DictionaryEntry" /> .</para>
</value>
<remarks>To be added.</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Gets or sets the value in the key/value pair.</para>
</summary>
</Docs>
<Excluded>0</Excluded>
</Member>
</Members>
<TypeExcluded>0</TypeExcluded>
</Type>

View File

@@ -0,0 +1 @@
83bd4362da13c37a87be1c4626e92eb664ce7449

View File

@@ -0,0 +1,198 @@
<?xml version="1.0" encoding="utf-8"?>
<Type Name="ICollection" FullName="System.Collections.ICollection" FullNameSP="System_Collections_ICollection" Maintainer="ecma">
<TypeSignature Language="ILASM" Value=".class interface public abstract ICollection implements System.Collections.IEnumerable" />
<TypeSignature Language="C#" Value="public interface ICollection : System.Collections.IEnumerable" />
<TypeSignature Language="ILAsm" Value=".class public interface auto ansi abstract ICollection implements class System.Collections.IEnumerable" />
<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>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Interfaces>
<Interface>
<InterfaceName>System.Collections.IEnumerable</InterfaceName>
</Interface>
</Interfaces>
<Attributes>
<Attribute>
<AttributeName>System.Runtime.InteropServices.ComVisible(true)</AttributeName>
</Attribute>
</Attributes>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The <see cref="T:System.Collections.ICollection" /> interface is the base interface for classes in the <see cref="N:System.Collections" /> namespace.</para>
<para>The <see cref="T:System.Collections.ICollection" /> interface extends <see cref="T:System.Collections.IEnumerable" />; <see cref="T:System.Collections.IDictionary" /> and <see cref="T:System.Collections.IList" /> are more specialized interfaces that extend <see cref="T:System.Collections.ICollection" />. An <see cref="T:System.Collections.IDictionary" /> implementation is a collection of key/value pairs, like the <see cref="T:System.Collections.Hashtable" /> class. An <see cref="T:System.Collections.IList" /> implementation is a collection of values and its members can be accessed by index, like the <see cref="T:System.Collections.ArrayList" /> class.</para>
<para>Some collections that limit access to their elements, such as the <see cref="T:System.Collections.Queue" /> class and the <see cref="T:System.Collections.Stack" /> class, directly implement the <see cref="T:System.Collections.ICollection" /> interface.</para>
<para>If neither the <see cref="T:System.Collections.IDictionary" /> interface nor the <see cref="T:System.Collections.IList" /> interface meet the requirements of the required collection, derive the new collection class from the <see cref="T:System.Collections.ICollection" /> interface instead for more flexibility.</para>
<para>For the generic version of this interface, see <see cref="T:System.Collections.Generic.ICollection`1" />.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Defines size, enumerators, and synchronization methods for all nongeneric collections.</para>
</summary>
</Docs>
<Members>
<Member MemberName="CopyTo">
<MemberSignature Language="ILASM" Value=".method public hidebysig virtual abstract void CopyTo(class System.Array array, int32 index)" />
<MemberSignature Language="C#" Value="public void CopyTo (Array array, int index);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void CopyTo(class System.Array array, int32 index) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="array" Type="System.Array" />
<Parameter Name="index" Type="System.Int32" />
</Parameters>
<Docs>
<remarks>
<para>
<block subset="none" type="behaviors">As described above.</block>
</para>
<para>
<block subset="none" type="usage">Use this method to copy from a collection to a
<see cref="T:System.Array" />.</block>
</para>
</remarks>
<exception cref="T:System.ArgumentNullException">
<paramref name="array" /> is <see langword="null" />.</exception>
<exception cref="T:System.ArgumentOutOfRangeException">
<paramref name="index" /> &lt; 0.</exception>
<exception cref="T:System.ArgumentException">
<para>
<paramref name="array" /> has more than one dimension.</para>
<para>-or-</para>
<para>
<paramref name="index" /> is greater than or equal to <paramref name="array" />.Length.</para>
<para>-or-</para>
<para> The sum of <paramref name="index" /> and the <see cref="P:System.Collections.ICollection.Count" /> of the current instance is greater than <paramref name="array" />.Length.</para>
</exception>
<exception cref="T:System.InvalidCastException">At least one element in the current instance is not assignment-compatible with the type of <paramref name="array" />.</exception>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Copies the elements of the <see cref="T:System.Collections.ICollection" /> to an <see cref="T:System.Array" />, starting at a particular <see cref="T:System.Array" /> index.</para>
</summary>
<param name="array">
<attribution license="cc4" from="Microsoft" modified="false" />The one-dimensional <see cref="T:System.Array" /> that is the destination of the elements copied from <see cref="T:System.Collections.ICollection" />. The <see cref="T:System.Array" /> must have zero-based indexing. </param>
<param name="index">
<attribution license="cc4" from="Microsoft" modified="false" />The zero-based index in <paramref name="array" /> at which copying begins. </param>
</Docs>
<Excluded>0</Excluded>
</Member>
<Member MemberName="Count">
<MemberSignature Language="ILASM" Value=".property int32 Count { public hidebysig virtual abstract specialname int32 get_Count() }" />
<MemberSignature Language="C#" Value="public int Count { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance int32 Count" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Int32</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<value>
<para>A <see cref="T:System.Int32" /> that indicates the number of elements contained in the current
instance.</para>
</value>
<remarks>
<para>This property is read-only.</para>
<block subset="none" type="behaviors">
<para>The <see cref="P:System.Collections.ICollection.Count" /> property
is required to return the total number of elements contained in the current instance.</para>
</block>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Gets the number of elements contained in the <see cref="T:System.Collections.ICollection" />.</para>
</summary>
</Docs>
<Excluded>0</Excluded>
</Member>
<Member MemberName="IsSynchronized">
<MemberSignature Language="ILASM" Value=".property bool IsSynchronized { public hidebysig virtual abstract specialname bool get_IsSynchronized() }" />
<MemberSignature Language="C#" Value="public bool IsSynchronized { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance bool IsSynchronized" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<value>
<para>
<see langword="true" /> if access to
the current instance is synchronized (thread-safe); otherwise, <see langword="false" />.</para>
</value>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>
<see cref="P:System.Collections.ICollection.SyncRoot" /> returns an object, which can be used to synchronize access to the <see cref="T:System.Collections.ICollection" />.</para>
<para>Most collection classes in the <see cref="N:System.Collections" /> namespace also implement a Synchronized method, which provides a synchronized wrapper around the underlying collection.</para>
<para>Enumerating through a collection is intrinsically not a thread-safe procedure. Even when a collection is synchronized, other threads can still modify the collection, which causes the enumerator to throw an exception. To guarantee thread safety during enumeration, you can either lock the collection during the entire enumeration or catch the exceptions resulting from changes made by other threads.</para>
<para>The following code example shows how to lock the collection using the <see cref="P:System.Collections.ICollection.SyncRoot" /> property during the entire enumeration.</para>
<para>code reference: System.Collections.ICollection#1</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Gets a value indicating whether access to the <see cref="T:System.Collections.ICollection" /> is synchronized (thread safe).</para>
</summary>
</Docs>
<Excluded>0</Excluded>
</Member>
<Member MemberName="SyncRoot">
<MemberSignature Language="ILASM" Value=".property object SyncRoot { public hidebysig virtual abstract specialname object get_SyncRoot() }" />
<MemberSignature Language="C#" Value="public object SyncRoot { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance object SyncRoot" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Object</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<value>
<para>A <see cref="T:System.Object" /> that can be
used for thread-safe synchronized access to the current instance.</para>
</value>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>For collections whose underlying store is not publicly available, the expected implementation is to return the current instance. Note that the pointer to the current instance might not be sufficient for collections that wrap other collections; those should return the underlying collection's SyncRoot property.</para>
<para>Most collection classes in the <see cref="N:System.Collections" /> namespace also implement a Synchronized method, which provides a synchronized wrapper around the underlying collection. However, derived classes can provide their own synchronized version of the collection using the <see cref="P:System.Collections.ICollection.SyncRoot" /> property. The synchronizing code must perform operations on the <see cref="P:System.Collections.ICollection.SyncRoot" /> property of the collection, not directly on the collection. This ensures proper operation of collections that are derived from other objects. Specifically, it maintains proper synchronization with other threads that might be simultaneously modifying the collection instance.</para>
<para>In the absence of a Synchronized method on a collection, the expected usage for <see cref="P:System.Collections.ICollection.SyncRoot" /> looks as follows:</para>
<para>code reference: System.Collections.ICollection#2</para>
<para>Enumerating through a collection is intrinsically not a thread-safe procedure. Even when a collection is synchronized, other threads can still modify the collection, which causes the enumerator to throw an exception. To guarantee thread safety during enumeration, you can either lock the collection during the entire enumeration or catch the exceptions resulting from changes made by other threads.</para>
<para>The following code example shows how to lock the collection using the <see cref="P:System.Collections.ICollection.SyncRoot" /> property during the entire enumeration. </para>
<para>code reference: System.Collections.ICollection#1</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Gets an object that can be used to synchronize access to the <see cref="T:System.Collections.ICollection" />.</para>
</summary>
</Docs>
<Excluded>0</Excluded>
</Member>
</Members>
<TypeExcluded>0</TypeExcluded>
</Type>

View File

@@ -0,0 +1,111 @@
<?xml version="1.0" encoding="utf-8"?>
<Type Name="IComparer" FullName="System.Collections.IComparer" FullNameSP="System_Collections_IComparer" Maintainer="ecma">
<TypeSignature Language="ILASM" Value=".class interface public abstract IComparer" />
<TypeSignature Language="C#" Value="public interface IComparer" />
<TypeSignature Language="ILAsm" Value=".class public interface auto ansi abstract IComparer" />
<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>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Interfaces />
<Attributes>
<Attribute>
<AttributeName>System.Runtime.InteropServices.ComVisible(true)</AttributeName>
</Attribute>
</Attributes>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>This interface is used in conjunction with the <see cref="M:System.Array.Sort(System.Array)" /> and <see cref="M:System.Array.BinarySearch(System.Array,System.Object)" /> methods. It provides a way to customize the sort order of a collection. See the <see cref="M:System.Collections.IComparer.Compare(System.Object,System.Object)" /> method for notes on parameters and return value.</para>
<para>The default implementation of this interface is the <see cref="T:System.Collections.Comparer" /> class. For the generic version of this interface, see <see cref="T:System.Collections.Generic.IComparer`1" />.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Exposes a method that compares two objects.</para>
</summary>
</Docs>
<Members>
<Member MemberName="Compare">
<MemberSignature Language="ILASM" Value=".method public hidebysig virtual abstract int32 Compare(object x, object y)" />
<MemberSignature Language="C#" Value="public int Compare (object x, object y);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance int32 Compare(object x, object y) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Int32</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="x" Type="System.Object" />
<Parameter Name="y" Type="System.Object" />
</Parameters>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The preferred implementation is to use the <see cref="M:System.IComparable.CompareTo(System.Object)" /> method of one of the parameters.</para>
<para>Comparing null with any type is allowed and does not generate an exception when using <see cref="T:System.IComparable" />. When sorting, null is considered to be less than any other object.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Compares two objects and returns a value indicating whether one is less than, equal to, or greater than the other.</para>
</summary>
<returns>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>A signed integer that indicates the relative values of <paramref name="x" /> and <paramref name="y" />, as shown in the following table.</para>
<list type="table">
<listheader>
<item>
<term>
<para>Value </para>
</term>
<description>
<para>Meaning </para>
</description>
</item>
</listheader>
<item>
<term>
<para>Less than zero </para>
</term>
<description>
<para>
<paramref name="x" /> is less than <paramref name="y" />. </para>
</description>
</item>
<item>
<term>
<para>Zero </para>
</term>
<description>
<para>
<paramref name="x" /> equals <paramref name="y" />. </para>
</description>
</item>
<item>
<term>
<para>Greater than zero </para>
</term>
<description>
<para>
<paramref name="x" /> is greater than <paramref name="y" />. </para>
</description>
</item>
</list>
</returns>
<param name="x">
<attribution license="cc4" from="Microsoft" modified="false" />The first object to compare. </param>
<param name="y">
<attribution license="cc4" from="Microsoft" modified="false" />The second object to compare. </param>
</Docs>
<Excluded>0</Excluded>
</Member>
</Members>
<TypeExcluded>0</TypeExcluded>
</Type>

View File

@@ -0,0 +1,400 @@
<?xml version="1.0" encoding="utf-8"?>
<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" />
<TypeSignature Language="ILAsm" Value=".class public interface auto ansi abstract IDictionary implements class System.Collections.ICollection, class System.Collections.IEnumerable" />
<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>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Interfaces>
<Interface>
<InterfaceName>System.Collections.ICollection</InterfaceName>
</Interface>
</Interfaces>
<Attributes>
<Attribute>
<AttributeName>System.Runtime.InteropServices.ComVisible(true)</AttributeName>
</Attribute>
</Attributes>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The <see cref="T:System.Collections.IDictionary" /> interface is the base interface for nongeneric collections of key/value pairs. For the generic version of this interface, see <see cref="T:System.Collections.Generic.IDictionary`2" />.</para>
<para>Each element is a key/value pair stored in a <see cref="T:System.Collections.DictionaryEntry" /> object.</para>
<para>Each pair must have a unique key. Implementations can vary in whether they allow the key to be null. The value can be null and does not have to be unique. 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 <see cref="T:System.Collections.IDictionary" /> object cannot be modified. A fixed-size <see cref="T:System.Collections.IDictionary" /> object does not allow the addition or removal of elements, but does allow the modification of existing elements. A variable-size <see cref="T:System.Collections.IDictionary" /> object allows the addition, removal, and modification of elements.</para>
<para>The foreach statement of the C# language (For Each in Visual Basic) requires the type of each element in the collection. Since each element of the <see cref="T:System.Collections.IDictionary" /> object 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.DictionaryEntry" />. For example: </para>
<para>code reference: Dictionary#14</para>
<para>The foreach statement is a wrapper around the enumerator, which allows only reading from but not writing to the collection.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Represents a nongeneric collection of key/value pairs.</para>
</summary>
</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);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Add(object key, object value) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="key" Type="System.Object" />
<Parameter Name="value" Type="System.Object" />
</Parameters>
<Docs>
<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>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>You can also use the <see cref="P:System.Collections.IDictionary.Item(System.Object)" /> property to add new elements by setting the value of a key that does not exist in the dictionary (for example, myCollection["myNonexistentKey"] = myValue). However, if the specified key already exists in the dictionary, setting the <see cref="P:System.Collections.IDictionary.Item(System.Object)" /> property overwrites the old value. In contrast, the <see cref="M:System.Collections.IDictionary.Add(System.Object,System.Object)" /> method does not modify existing elements.</para>
<para>Implementations can vary in whether they allow the key to be null.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Adds an element with the provided key and value to the <see cref="T:System.Collections.IDictionary" /> object.</para>
</summary>
<param name="key">
<attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Object" /> to use as the key of the element to add. </param>
<param name="value">
<attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Object" /> to use as the value of the element to add. </param>
</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 ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Clear() cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<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>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Removes all elements from the <see cref="T:System.Collections.IDictionary" /> object.</para>
</summary>
</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);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance bool Contains(object key) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="key" Type="System.Object" />
</Parameters>
<Docs>
<exception cref="T:System.ArgumentNullException">
<paramref name="key " />is <see langword="null" />.</exception>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Implementations can vary in whether they allow the key to be null.</para>
<para>Starting with the .NET Framework 2.0, this method uses the collections objects <see cref="M:System.Object.Equals(System.Object)" /> and <see cref="M:System.IComparable.CompareTo(System.Object)" /> methods on <paramref name="item" /> to determine whether <paramref name="item" /> exists. In the earlier versions of the .NET Framework, this determination was made by using the <see cref="M:System.Object.Equals(System.Object)" /> and <see cref="M:System.IComparable.CompareTo(System.Object)" /> methods of the <paramref name="item" /> parameter on the objects in the collection.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Determines whether the <see cref="T:System.Collections.IDictionary" /> object contains an element with the specified key.</para>
</summary>
<returns>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>true if the <see cref="T:System.Collections.IDictionary" /> contains an element with the key; otherwise, false.</para>
</returns>
<param name="key">
<attribution license="cc4" from="Microsoft" modified="false" />The key to locate in the <see cref="T:System.Collections.IDictionary" /> object.</param>
</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 ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class System.Collections.IDictionaryEnumerator GetEnumerator() cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Collections.IDictionaryEnumerator</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>[Visual Basic, C#]</para>
<para>The foreach statement of the C# language (for each in Visual Basic) hides the complexity of the enumerators. Therefore, using foreach is recommended instead of directly manipulating the enumerator.</para>
<para>Enumerators can be used to read the data in the collection, but they cannot be used to modify the underlying collection.</para>
<para>Initially, the enumerator is positioned before the first element in the collection. <see cref="M:System.Collections.IEnumerator.Reset" /> also brings the enumerator back to this position. At this position, the <see cref="P:System.Collections.IEnumerator.Current" /> property is undefined. Therefore, you must call <see cref="M:System.Collections.IEnumerator.MoveNext" /> to advance the enumerator to the first element of the collection before reading the value of <see cref="P:System.Collections.IEnumerator.Current" />.</para>
<para>
<see cref="P:System.Collections.IEnumerator.Current" /> returns the same object until either <see cref="M:System.Collections.IEnumerator.MoveNext" /> or <see cref="M:System.Collections.IEnumerator.Reset" /> is called. <see cref="M:System.Collections.IEnumerator.MoveNext" /> sets <see cref="P:System.Collections.IEnumerator.Current" /> to the next element.</para>
<para>If <see cref="M:System.Collections.IEnumerator.MoveNext" /> passes the end of the collection, the enumerator is positioned after the last element in the collection and <see cref="M:System.Collections.IEnumerator.MoveNext" /> returns false. When the enumerator is at this position, subsequent calls to <see cref="M:System.Collections.IEnumerator.MoveNext" /> also return false. If the last call to <see cref="M:System.Collections.IEnumerator.MoveNext" /> returned false, <see cref="P:System.Collections.IEnumerator.Current" /> is undefined. To set <see cref="P:System.Collections.IEnumerator.Current" /> to the first element of the collection again, you can call <see cref="M:System.Collections.IEnumerator.Reset" /> followed by <see cref="M:System.Collections.IEnumerator.MoveNext" />.</para>
<para>An enumerator remains valid as long as the collection remains unchanged. If changes are made to the collection, such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated and its behavior is undefined.</para>
<para>The enumerator does not have exclusive access to the collection; therefore, enumerating through a collection is intrinsically not a thread-safe procedure. To guarantee thread safety during enumeration, you can lock the collection during the entire enumeration. To allow the collection to be accessed by multiple threads for reading and writing, you must implement your own synchronization.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Returns an <see cref="T:System.Collections.IDictionaryEnumerator" /> object for the <see cref="T:System.Collections.IDictionary" /> object.</para>
</summary>
<returns>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>An <see cref="T:System.Collections.IDictionaryEnumerator" /> object for the <see cref="T:System.Collections.IDictionary" /> object.</para>
</returns>
</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; }" />
<MemberSignature Language="ILAsm" Value=".property instance bool IsFixedSize" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<value>
<para>
<see langword="true" /> if the
current instance has a fixed size;
otherwise, <see langword="false" />. </para>
</value>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>A collection with a fixed size does not allow the addition or removal of elements after the collection is created, but does allow the modification of existing elements.</para>
<para>A collection with a fixed size is simply a collection with a wrapper that prevents adding and removing elements; therefore, if changes are made to the underlying collection, including the addition or removal of elements, the fixed-size collection reflects those changes.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Gets a value indicating whether the <see cref="T:System.Collections.IDictionary" /> object has a fixed size.</para>
</summary>
</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; }" />
<MemberSignature Language="ILAsm" Value=".property instance bool IsReadOnly" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<value>
<para>
<see langword="true" /> if the
current instance is read-only; otherwise,
<see langword="false" />.</para>
</value>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>A collection that is read-only does not allow the addition, removal, or modification of elements after the collection is created.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Gets a value indicating whether the <see cref="T:System.Collections.IDictionary" /> object is read-only.</para>
</summary>
</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] { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance object Item(object)" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<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; }" />
<MemberSignature Language="ILAsm" Value=".property instance class System.Collections.ICollection Keys" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Collections.ICollection</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<value>
<para>A <see cref="T:System.Collections.ICollection" /> containing the keys of the current
instance.</para>
</value>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The order of the keys in the returned <see cref="T:System.Collections.ICollection" /> object is unspecified, but is guaranteed to be the same order as the corresponding values in the <see cref="T:System.Collections.ICollection" /> returned by the <see cref="P:System.Collections.IDictionary.Values" /> property.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Gets an <see cref="T:System.Collections.ICollection" /> object containing the keys of the <see cref="T:System.Collections.IDictionary" /> object.</para>
</summary>
</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);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Remove(object key) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="key" Type="System.Object" />
</Parameters>
<Docs>
<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>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>If the <see cref="T:System.Collections.IDictionary" /> object does not contain an element with the specified key, the <see cref="T:System.Collections.IDictionary" /> remains unchanged. No exception is thrown.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Removes the element with the specified key from the <see cref="T:System.Collections.IDictionary" /> object.</para>
</summary>
<param name="key">
<attribution license="cc4" from="Microsoft" modified="false" />The key of the element to remove. </param>
</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; }" />
<MemberSignature Language="ILAsm" Value=".property instance class System.Collections.ICollection Values" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Collections.ICollection</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<value>
<para>A <see cref="T:System.Collections.ICollection" /> containing the values in the current
instance.</para>
</value>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The order of the values in the returned <see cref="T:System.Collections.ICollection" /> object is unspecified, but is guaranteed to be the same order as the corresponding keys in the <see cref="T:System.Collections.ICollection" /> returned by the <see cref="P:System.Collections.IDictionary.Keys" /> property.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Gets an <see cref="T:System.Collections.ICollection" /> object containing the values in the <see cref="T:System.Collections.IDictionary" /> object.</para>
</summary>
</Docs>
<Excluded>0</Excluded>
</Member>
</Members>
<TypeExcluded>0</TypeExcluded>
</Type>

View File

@@ -0,0 +1,163 @@
<?xml version="1.0" encoding="utf-8"?>
<Type Name="IDictionaryEnumerator" FullName="System.Collections.IDictionaryEnumerator" FullNameSP="System_Collections_IDictionaryEnumerator" Maintainer="ecma">
<TypeSignature Language="ILASM" Value=".class interface public abstract IDictionaryEnumerator implements System.Collections.IEnumerator" />
<TypeSignature Language="C#" Value="public interface IDictionaryEnumerator : System.Collections.IEnumerator" />
<TypeSignature Language="ILAsm" Value=".class public interface auto ansi abstract IDictionaryEnumerator implements class System.Collections.IEnumerator" />
<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>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Interfaces>
<Interface>
<InterfaceName>System.Collections.IEnumerator</InterfaceName>
</Interface>
</Interfaces>
<Attributes>
<Attribute>
<AttributeName>System.Runtime.InteropServices.ComVisible(true)</AttributeName>
</Attribute>
</Attributes>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>[Visual Basic, C#]</para>
<para>The foreach statement of the C# language (for each in Visual Basic) hides the complexity of the enumerators. Therefore, using foreach is recommended instead of directly manipulating the enumerator.</para>
<para>Enumerators can be used to read the data in the collection, but they cannot be used to modify the underlying collection.</para>
<para>Initially, the enumerator is positioned before the first element in the collection. The <see cref="M:System.Collections.IEnumerator.Reset" /> method also brings the enumerator back to this position. At this position, calling the <see cref="P:System.Collections.IEnumerator.Current" /> property throws an exception. Therefore, you must call the <see cref="M:System.Collections.IEnumerator.MoveNext" /> method to advance the enumerator to the first element of the collection before reading the value of <see cref="P:System.Collections.IEnumerator.Current" />.</para>
<para>
<see cref="P:System.Collections.IEnumerator.Current" /> returns the same object until either <see cref="M:System.Collections.IEnumerator.MoveNext" /> or <see cref="M:System.Collections.IEnumerator.Reset" /> is called. <see cref="M:System.Collections.IEnumerator.MoveNext" /> sets <see cref="P:System.Collections.IEnumerator.Current" /> to the next element.</para>
<para>If <see cref="M:System.Collections.IEnumerator.MoveNext" /> passes the end of the collection, the enumerator is positioned after the last element in the collection and <see cref="M:System.Collections.IEnumerator.MoveNext" /> returns false. When the enumerator is at this position, subsequent calls to <see cref="M:System.Collections.IEnumerator.MoveNext" /> also return false. If the last call to <see cref="M:System.Collections.IEnumerator.MoveNext" /> returned false, calling <see cref="P:System.Collections.IEnumerator.Current" /> throws an exception. To set <see cref="P:System.Collections.IEnumerator.Current" /> to the first element of the collection again, you can call <see cref="M:System.Collections.IEnumerator.Reset" /> followed by <see cref="M:System.Collections.IEnumerator.MoveNext" />.</para>
<para>An enumerator remains valid as long as the collection remains unchanged. If changes are made to the collection, such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated and the next call to <see cref="M:System.Collections.IEnumerator.MoveNext" /> or <see cref="M:System.Collections.IEnumerator.Reset" /> throws an <see cref="T:System.InvalidOperationException" />. If the collection is modified between <see cref="M:System.Collections.IEnumerator.MoveNext" /> and <see cref="P:System.Collections.IEnumerator.Current" />, <see cref="P:System.Collections.IEnumerator.Current" /> returns the element that it is set to, even if the enumerator is already invalidated.</para>
<para>The enumerator does not have exclusive access to the collection; therefore, enumerating through a collection is intrinsically not a thread-safe procedure. Even when a collection is synchronized, other threads can still modify the collection, which causes the enumerator to throw an exception. To guarantee thread safety during enumeration, you can either lock the collection during the entire enumeration or catch the exceptions resulting from changes made by other threads.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Enumerates the elements of a nongeneric dictionary.</para>
</summary>
</Docs>
<Members>
<Member MemberName="Entry">
<MemberSignature Language="ILASM" Value=".property valuetype System.Collections.DictionaryEntry Entry { public hidebysig virtual abstract specialname valuetype System.Collections.DictionaryEntry get_Entry() }" />
<MemberSignature Language="C#" Value="public System.Collections.DictionaryEntry Entry { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance valuetype System.Collections.DictionaryEntry Entry" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Collections.DictionaryEntry</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<value>
<para> The <see cref="T:System.Collections.DictionaryEntry" /> in the collection over which the current instance is positioned.</para>
</value>
<exception cref="T:System.InvalidOperationException">
<para>The <see cref="T:System.Collections.IDictionaryEnumerator" /> is positioned before the first element of the dictionary or after the last element.</para>
<para>-or-</para>
<para>The dictionary was modified after the <see cref="T:System.Collections.IDictionaryEnumerator" /> was created.</para>
</exception>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>After an enumerator is created or after the <see cref="M:System.Collections.IEnumerator.Reset" /> method is called, the <see cref="M:System.Collections.IEnumerator.MoveNext" /> method must be called to advance the enumerator to the first element of the collection before reading the value of the <see cref="P:System.Collections.IDictionaryEnumerator.Entry" /> property; otherwise, <see cref="P:System.Collections.IDictionaryEnumerator.Entry" /> is undefined.</para>
<para>
<see cref="P:System.Collections.IDictionaryEnumerator.Entry" /> also throws an exception if the last call to <see cref="M:System.Collections.IEnumerator.MoveNext" /> returned false, which indicates the end of the collection.</para>
<para>
<see cref="P:System.Collections.IDictionaryEnumerator.Entry" /> does not move the position of the enumerator, and consecutive calls to <see cref="P:System.Collections.IDictionaryEnumerator.Entry" /> return the same object until either <see cref="M:System.Collections.IEnumerator.MoveNext" /> or <see cref="M:System.Collections.IEnumerator.Reset" /> is called.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Gets both the key and the value of the current dictionary entry.</para>
</summary>
</Docs>
<Excluded>0</Excluded>
</Member>
<Member MemberName="Key">
<MemberSignature Language="ILASM" Value=".property object Key { public hidebysig virtual abstract specialname object get_Key() }" />
<MemberSignature Language="C#" Value="public object Key { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance object Key" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Object</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<value>
<para>A <see cref="T:System.Object" /> that contains the
<see cref="P:System.Collections.DictionaryEntry.Key" />
of the <see cref="T:System.Collections.DictionaryEntry" /> in the collection over which the current instance is positioned.</para>
</value>
<exception cref="T:System.InvalidOperationException">
<para>The <see cref="T:System.Collections.IDictionaryEnumerator" /> is positioned before the first element of the dictionary or after the last element.</para>
<para>-or-</para>
<para>The dictionary was modified after the <see cref="T:System.Collections.IDictionaryEnumerator" /> was instantiated.</para>
</exception>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>After an enumerator is created or after the <see cref="M:System.Collections.IEnumerator.Reset" /> method is called, the <see cref="M:System.Collections.IEnumerator.MoveNext" /> method must be called to advance the enumerator to the first element of the collection before reading the value of the <see cref="P:System.Collections.IDictionaryEnumerator.Key" /> property; otherwise, <see cref="P:System.Collections.IDictionaryEnumerator.Key" /> is undefined.</para>
<para>
<see cref="P:System.Collections.IDictionaryEnumerator.Key" /> also throws an exception if the last call to <see cref="M:System.Collections.IEnumerator.MoveNext" /> returned false, which indicates the end of the collection.</para>
<para>
<see cref="P:System.Collections.IDictionaryEnumerator.Key" /> does not move the position of the enumerator, and consecutive calls to <see cref="P:System.Collections.IDictionaryEnumerator.Key" /> return the same object until either <see cref="M:System.Collections.IEnumerator.MoveNext" /> or <see cref="M:System.Collections.IEnumerator.Reset" /> is called.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Gets the key of the current dictionary entry.</para>
</summary>
</Docs>
<Excluded>0</Excluded>
</Member>
<Member MemberName="Value">
<MemberSignature Language="ILASM" Value=".property object Value { public hidebysig virtual abstract specialname object get_Value() }" />
<MemberSignature Language="C#" Value="public object Value { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance object Value" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Object</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<value>
<para>A <see cref="T:System.Object" /> that contains the
<see cref="P:System.Collections.DictionaryEntry.Value" />
of the <see cref="T:System.Collections.DictionaryEntry" /> in the collection over which the current instance is positioned.</para>
</value>
<exception cref="T:System.InvalidOperationException">
<para>The <see cref="T:System.Collections.IDictionaryEnumerator" /> is positioned before the first element of the dictionary or after the last element.</para>
<para>-or-</para>
<para>The dictionary was modified after the <see cref="T:System.Collections.IDictionaryEnumerator" /> was created.</para>
</exception>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>After an enumerator is created or after the <see cref="M:System.Collections.IEnumerator.Reset" /> method is called, the <see cref="M:System.Collections.IEnumerator.MoveNext" /> method must be called to advance the enumerator to the first element of the collection before reading the value of the <see cref="P:System.Collections.IDictionaryEnumerator.Value" /> property; otherwise, <see cref="P:System.Collections.IDictionaryEnumerator.Value" /> is undefined.</para>
<para>
<see cref="P:System.Collections.IDictionaryEnumerator.Value" /> also throws an exception if the last call to <see cref="M:System.Collections.IEnumerator.MoveNext" /> returned false, which indicates the end of the collection.</para>
<para>
<see cref="P:System.Collections.IDictionaryEnumerator.Value" /> does not move the position of the enumerator, and consecutive calls to <see cref="P:System.Collections.IDictionaryEnumerator.Value" /> return the same object until either <see cref="M:System.Collections.IEnumerator.MoveNext" /> or <see cref="M:System.Collections.IEnumerator.Reset" /> is called.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Gets the value of the current dictionary entry.</para>
</summary>
</Docs>
<Excluded>0</Excluded>
</Member>
</Members>
<TypeExcluded>0</TypeExcluded>
</Type>

View File

@@ -0,0 +1,80 @@
<?xml version="1.0" encoding="utf-8"?>
<Type Name="IEnumerable" FullName="System.Collections.IEnumerable" FullNameSP="System_Collections_IEnumerable" Maintainer="ecma">
<TypeSignature Language="ILASM" Value=".class interface public abstract IEnumerable" />
<TypeSignature Language="C#" Value="public interface IEnumerable" />
<TypeSignature Language="ILAsm" Value=".class public interface auto ansi abstract IEnumerable" />
<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>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Interfaces />
<Attributes>
<Attribute>
<AttributeName>System.Runtime.InteropServices.ComVisible(true)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>System.Runtime.InteropServices.Guid("496B0ABE-CDEE-11d3-88E8-00902754C43A")</AttributeName>
</Attribute>
</Attributes>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>
<see cref="T:System.Collections.IEnumerable" /> is the base interface for all non-generic collections that can be enumerated. For the generic version of this interface see <see cref="T:System.Collections.Generic.IEnumerable`1" />. <see cref="T:System.Collections.IEnumerable" /> contains a single method, <see cref="M:System.Collections.IEnumerable.GetEnumerator" />, which returns an <see cref="T:System.Collections.IEnumerator" />. <see cref="T:System.Collections.IEnumerator" /> provides the ability to iterate through the collection by exposing a <see cref="P:System.Collections.IEnumerator.Current" /> property and <see cref="M:System.Collections.IEnumerator.MoveNext" /> and <see cref="M:System.Collections.IEnumerator.Reset" /> methods. </para>
<para>It is a best practice to implement <see cref="T:System.Collections.IEnumerable" /> and <see cref="T:System.Collections.IEnumerator" /> on your collection classes to enable the foreach (For Each in Visual Basic) syntax, however implementing <see cref="T:System.Collections.IEnumerable" /> is not required. If your collection does not implement <see cref="T:System.Collections.IEnumerable" />, you must still follow the iterator pattern to support this syntax by providing a GetEnumerator method that returns an interface, class or struct. When using Visual Basic, you must provide an <see cref="T:System.Collections.IEnumerator" /> implementation, which is returned by GetEnumerator. When developing with C# you must provide a class that contains a Current property, and MoveNext and Reset methods as described by <see cref="T:System.Collections.IEnumerator" />, but the class does not have to implement <see cref="T:System.Collections.IEnumerator" />.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Exposes an enumerator, which supports a simple iteration over a non-generic collection.</para>
</summary>
</Docs>
<Members>
<Member MemberName="GetEnumerator">
<MemberSignature Language="ILASM" Value=".method public hidebysig virtual abstract class System.Collections.IEnumerator GetEnumerator()" />
<MemberSignature Language="C#" Value="public System.Collections.IEnumerator GetEnumerator ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class System.Collections.IEnumerator GetEnumerator() cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Attributes>
<Attribute>
<AttributeName>System.Runtime.InteropServices.DispId(-4)</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>System.Collections.IEnumerator</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The foreach statement of the C# language (For Each in Visual Basic) hides the complexity of the enumerators. Therefore, using foreach is recommended, instead of directly manipulating the enumerator.</para>
<para>Enumerators can be used to read the data in the collection, but they cannot be used to modify the underlying collection.</para>
<para>Initially, the enumerator is positioned before the first element in the collection. The <see cref="M:System.Collections.IEnumerator.Reset" /> method also brings the enumerator back to this position. At this position, the <see cref="P:System.Collections.IEnumerator.Current" /> property is undefined. Therefore, you must call the <see cref="M:System.Collections.IEnumerator.MoveNext" /> method to advance the enumerator to the first element of the collection before reading the value of <see cref="P:System.Collections.IEnumerator.Current" />.</para>
<para>
<see cref="P:System.Collections.IEnumerator.Current" /> returns the same object until either <see cref="M:System.Collections.IEnumerator.MoveNext" /> or <see cref="M:System.Collections.IEnumerator.Reset" /> is called. <see cref="M:System.Collections.IEnumerator.MoveNext" /> sets <see cref="P:System.Collections.IEnumerator.Current" /> to the next element.</para>
<para>If <see cref="M:System.Collections.IEnumerator.MoveNext" /> passes the end of the collection, the enumerator is positioned after the last element in the collection and <see cref="M:System.Collections.IEnumerator.MoveNext" /> returns false. When the enumerator is at this position, subsequent calls to <see cref="M:System.Collections.IEnumerator.MoveNext" /> also return false. If the last call to <see cref="M:System.Collections.IEnumerator.MoveNext" /> returns false, <see cref="P:System.Collections.IEnumerator.Current" /> is undefined. To set <see cref="P:System.Collections.IEnumerator.Current" /> to the first element of the collection again, you can call <see cref="M:System.Collections.IEnumerator.Reset" /> followed by <see cref="M:System.Collections.IEnumerator.MoveNext" />.</para>
<para>An enumerator remains valid as long as the collection remains unchanged. If changes are made to the collection, such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated and its behavior is undefined.</para>
<para>The enumerator does not have exclusive access to the collection; therefore, enumerating through a collection is intrinsically not a thread-safe procedure. To guarantee thread safety during enumeration, you can lock the collection during the entire enumeration. To allow the collection to be accessed by multiple threads for reading and writing, you must implement your own synchronization.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Returns an enumerator that iterates through a collection.</para>
</summary>
<returns>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>An <see cref="T:System.Collections.IEnumerator" /> object that can be used to iterate through the collection.</para>
</returns>
</Docs>
<Excluded>0</Excluded>
</Member>
</Members>
<TypeExcluded>0</TypeExcluded>
</Type>

View File

@@ -0,0 +1,147 @@
<?xml version="1.0" encoding="utf-8"?>
<Type Name="IEnumerator" FullName="System.Collections.IEnumerator" FullNameSP="System_Collections_IEnumerator" Maintainer="ecma">
<TypeSignature Language="ILASM" Value=".class interface public abstract IEnumerator" />
<TypeSignature Language="C#" Value="public interface IEnumerator" />
<TypeSignature Language="ILAsm" Value=".class public interface auto ansi abstract IEnumerator" />
<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>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Interfaces />
<Attributes>
<Attribute>
<AttributeName>System.Runtime.InteropServices.ComVisible(true)</AttributeName>
</Attribute>
<Attribute>
<AttributeName>System.Runtime.InteropServices.Guid("496B0ABF-CDEE-11D3-88E8-00902754C43A")</AttributeName>
</Attribute>
</Attributes>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>
<see cref="T:System.Collections.IEnumerator" /> is the base interface for all non-generic enumerators.</para>
<para>For the generic version of this interface see <see cref="T:System.Collections.Generic.IEnumerator`1" />.</para>
<para>The foreach statement of the C# language (for each in Visual Basic) hides the complexity of the enumerators. Therefore, using foreach is recommended instead of directly manipulating the enumerator.</para>
<para>Enumerators can be used to read the data in the collection, but they cannot be used to modify the underlying collection.</para>
<para>Initially, the enumerator is positioned before the first element in the collection. The <see cref="M:System.Collections.IEnumerator.Reset" /> method also brings the enumerator back to this position. After an enumerator is created or the <see cref="M:System.Collections.IEnumerator.Reset" /> method is called, you must call the <see cref="M:System.Collections.IEnumerator.MoveNext" /> method to advance the enumerator to the first element of the collection before reading the value of <see cref="P:System.Collections.IEnumerator.Current" />; otherwise, <see cref="P:System.Collections.IEnumerator.Current" /> is undefined..</para>
<para>
<see cref="P:System.Collections.IEnumerator.Current" /> returns the same object until either <see cref="M:System.Collections.IEnumerator.MoveNext" /> or <see cref="M:System.Collections.IEnumerator.Reset" /> is called. <see cref="M:System.Collections.IEnumerator.MoveNext" /> sets <see cref="P:System.Collections.IEnumerator.Current" /> to the next element.</para>
<para>If <see cref="M:System.Collections.IEnumerator.MoveNext" /> passes the end of the collection, the enumerator is positioned after the last element in the collection and <see cref="M:System.Collections.IEnumerator.MoveNext" /> returns false. When the enumerator is at this position, subsequent calls to <see cref="M:System.Collections.IEnumerator.MoveNext" /> also return false. If the last call to <see cref="M:System.Collections.IEnumerator.MoveNext" /> returned false, calling <see cref="P:System.Collections.IEnumerator.Current" /> throws an exception. To set <see cref="P:System.Collections.IEnumerator.Current" /> to the first element of the collection again, you can call <see cref="M:System.Collections.IEnumerator.Reset" /> followed by <see cref="M:System.Collections.IEnumerator.MoveNext" />.</para>
<para>An enumerator remains valid as long as the collection remains unchanged. If changes are made to the collection, such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated and the next call to <see cref="M:System.Collections.IEnumerator.MoveNext" /> or <see cref="M:System.Collections.IEnumerator.Reset" /> throws an <see cref="T:System.InvalidOperationException" />. If the collection is modified between <see cref="M:System.Collections.IEnumerator.MoveNext" /> and <see cref="P:System.Collections.IEnumerator.Current" />, <see cref="P:System.Collections.IEnumerator.Current" /> returns the element that it is set to, even if the enumerator is already invalidated.</para>
<para>The enumerator does not have exclusive access to the collection; therefore, enumerating through a collection is intrinsically not a thread-safe procedure. Even when a collection is synchronized, other threads can still modify the collection, which causes the enumerator to throw an exception. To guarantee thread safety during enumeration, you can either lock the collection during the entire enumeration or catch the exceptions resulting from changes made by other threads.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Supports a simple iteration over a non-generic collection.</para>
</summary>
</Docs>
<Members>
<Member MemberName="Current">
<MemberSignature Language="ILASM" Value=".property object Current { public hidebysig virtual abstract specialname object get_Current() }" />
<MemberSignature Language="C#" Value="public object Current { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance object Current" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Object</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<value>
<para> The element in the collection over which the current instance is positioned.</para>
</value>
<exception cref="T:System.InvalidOperationException">
<para> The current instance is positioned before the first element or after the last element of the collection.</para>
<para>The collection was modified after the current instance was instantiated.</para>
</exception>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>After an enumerator is created or after the <see cref="M:System.Collections.IEnumerator.Reset" /> method is called, the <see cref="M:System.Collections.IEnumerator.MoveNext" /> method must be called to advance the enumerator to the first element of the collection before reading the value of the <see cref="P:System.Collections.IEnumerator.Current" /> property; otherwise, <see cref="P:System.Collections.IEnumerator.Current" /> is undefined.</para>
<para>
<see cref="P:System.Collections.IEnumerator.Current" /> also throws an exception if the last call to <see cref="M:System.Collections.IEnumerator.MoveNext" /> returned false, which indicates the end of the collection.</para>
<para>
<see cref="P:System.Collections.IEnumerator.Current" /> does not move the position of the enumerator, and consecutive calls to <see cref="P:System.Collections.IEnumerator.Current" /> return the same object until either <see cref="M:System.Collections.IEnumerator.MoveNext" /> or <see cref="M:System.Collections.IEnumerator.Reset" /> is called.</para>
<para>An enumerator remains valid as long as the collection remains unchanged. If changes are made to the collection, such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated and the next call to <see cref="M:System.Collections.IEnumerator.MoveNext" /> or <see cref="M:System.Collections.IEnumerator.Reset" /> throws an <see cref="T:System.InvalidOperationException" />. If the collection is modified between <see cref="M:System.Collections.IEnumerator.MoveNext" /> and <see cref="P:System.Collections.IEnumerator.Current" />, <see cref="P:System.Collections.IEnumerator.Current" /> returns the element that it is set to, even if the enumerator is already invalidated.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Gets the current element in the collection.</para>
</summary>
</Docs>
<Excluded>0</Excluded>
</Member>
<Member MemberName="MoveNext">
<MemberSignature Language="ILASM" Value=".method public hidebysig virtual abstract bool 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>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<exception cref="T:System.InvalidOperationException">
<para>The collection was modified after the current instance was instantiated.</para>
</exception>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>After an enumerator is created or after the <see cref="M:System.Collections.IEnumerator.Reset" /> method is called, an enumerator is positioned before the first element of the collection, and the first call to the <see cref="M:System.Collections.IEnumerator.MoveNext" /> method moves the enumerator over the first element of the collection.</para>
<para>If <see cref="M:System.Collections.IEnumerator.MoveNext" /> passes the end of the collection, the enumerator is positioned after the last element in the collection and <see cref="M:System.Collections.IEnumerator.MoveNext" /> returns false. When the enumerator is at this position, subsequent calls to <see cref="M:System.Collections.IEnumerator.MoveNext" /> also return false until <see cref="M:System.Collections.IEnumerator.Reset" /> is called.</para>
<para>An enumerator remains valid as long as the collection remains unchanged. If changes are made to the collection, such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated and the next call to <see cref="M:System.Collections.IEnumerator.MoveNext" /> or <see cref="M:System.Collections.IEnumerator.Reset" /> throws an <see cref="T:System.InvalidOperationException" />.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Advances the enumerator to the next element of the collection.</para>
</summary>
<returns>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection.</para>
</returns>
</Docs>
<Excluded>0</Excluded>
</Member>
<Member MemberName="Reset">
<MemberSignature Language="ILASM" Value=".method public hidebysig virtual abstract void Reset()" />
<MemberSignature Language="C#" Value="public void Reset ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Reset() cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<exception cref="T:System.InvalidOperationException">The collection was modified after the enumerator was instantiated.</exception>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>An enumerator remains valid as long as the collection remains unchanged. If changes are made to the collection, such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated and the next call to the <see cref="M:System.Collections.IEnumerator.MoveNext" /> or <see cref="M:System.Collections.IEnumerator.Reset" /> method throws an <see cref="T:System.InvalidOperationException" />.</para>
<para>The <see cref="M:System.Collections.IEnumerator.Reset" /> method is provided for COM interoperability. It does not necessarily need to be implemented; instead, the implementer can simply throw a <see cref="T:System.NotSupportedException" />.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Sets the enumerator to its initial position, which is before the first element in the collection.</para>
</summary>
</Docs>
<Excluded>0</Excluded>
</Member>
</Members>
<TypeExcluded>0</TypeExcluded>
</Type>

View File

@@ -0,0 +1,98 @@
<?xml version="1.0" encoding="utf-8"?>
<Type Name="IEqualityComparer" FullName="System.Collections.IEqualityComparer">
<TypeSignature Language="C#" Value="public interface IEqualityComparer" />
<TypeSignature Language="ILAsm" Value=".class public interface auto ansi abstract IEqualityComparer" />
<AssemblyInfo>
<AssemblyName>mscorlib</AssemblyName>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Interfaces />
<Attributes>
<Attribute>
<AttributeName>System.Runtime.InteropServices.ComVisible(true)</AttributeName>
</Attribute>
</Attributes>
<Docs>
<since version=".NET 2.0" />
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>This interface allows the implementation of customized equality comparison for collections. That is, you can create your own definition of equality, and specify that this definition be used with a collection type that accepts the <see cref="T:System.Collections.IEqualityComparer" /> interface. In the .NET Framework, constructors of the <see cref="T:System.Collections.Hashtable" />, <see cref="T:System.Collections.Specialized.NameValueCollection" />, and <see cref="T:System.Collections.Specialized.OrderedDictionary" /> collection types accept this interface.</para>
<para>This interface supports only equality comparisons. Customization of comparisons for sorting and ordering is provided by the <see cref="T:System.Collections.IComparer" /> interface. </para>
<para>For the generic version of this interface, see <see cref="T:System.Collections.Generic.IEqualityComparer`1" />.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Defines methods to support the comparison of objects for equality.</para>
</summary>
</Docs>
<Members>
<Member MemberName="Equals">
<MemberSignature Language="C#" Value="public bool Equals (object x, object y);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance bool Equals(object x, object y) 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>
<Parameter Name="x" Type="System.Object" />
<Parameter Name="y" Type="System.Object" />
</Parameters>
<Docs>
<since version=".NET 2.0" />
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Implement this method to provide a customized equality comparison for objects. </para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Determines whether the specified objects are equal.</para>
</summary>
<returns>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>true if the specified objects are equal; otherwise, false.</para>
</returns>
<param name="x">
<attribution license="cc4" from="Microsoft" modified="false" />The first object to compare.</param>
<param name="y">
<attribution license="cc4" from="Microsoft" modified="false" />The second object to compare.</param>
</Docs>
</Member>
<Member MemberName="GetHashCode">
<MemberSignature Language="C#" Value="public int GetHashCode (object obj);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance int32 GetHashCode(object obj) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Int32</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="obj" Type="System.Object" />
</Parameters>
<Docs>
<since version=".NET 2.0" />
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Implement this method to provide customized hash codes for objects,<paramref name=" " />corresponding to the customized equality comparison provided by the <see cref="M:System.Collections.IEqualityComparer.Equals(System.Object,System.Object)" /> method. </para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Returns a hash code for the specified object.</para>
</summary>
<returns>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>A hash code for the specified object.</para>
</returns>
<param name="obj">
<attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Object" /> for which a hash code is to be returned.</param>
</Docs>
</Member>
</Members>
</Type>

View File

@@ -0,0 +1,73 @@
<?xml version="1.0" encoding="utf-8"?>
<Type Name="IHashCodeProvider" FullName="System.Collections.IHashCodeProvider" FullNameSP="System_Collections_IHashCodeProvider" Maintainer="ecma">
<TypeSignature Language="ILASM" Value=".class interface public abstract IHashCodeProvider" />
<TypeSignature Language="C#" Value="public interface IHashCodeProvider" />
<TypeSignature Language="ILAsm" Value=".class public interface auto ansi abstract IHashCodeProvider" />
<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>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Interfaces />
<Attributes>
<Attribute>
<AttributeName>System.Obsolete("Please use IEqualityComparer instead.")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>System.Runtime.InteropServices.ComVisible(true)</AttributeName>
</Attribute>
</Attributes>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The <see cref="T:System.Collections.IHashCodeProvider" /> interface is used in conjunction with the <see cref="T:System.Collections.Hashtable" /> class. The objects used as keys by a <see cref="T:System.Collections.Hashtable" /> object must override the <see cref="M:System.Object.GetHashCode" /> and <see cref="M:System.Object.Equals(System.Object)" /> methods. <see cref="M:System.Object.GetHashCode" /> or the key's implementation of <see cref="M:System.Object.GetHashCode" /> is used as the hash code provider. <see cref="M:System.Object.Equals(System.Object)" /> or the key's implementation of <see cref="M:System.Object.Equals(System.Object)" /> is used as the comparer.</para>
<para>However, some overloads of the <see cref="T:System.Collections.Hashtable" /> constructor take a parameter that is an <see cref="T:System.Collections.IHashCodeProvider" /> implementation, or a parameter that is an <see cref="T:System.Collections.IComparer" /> implementation, or both. If an <see cref="T:System.Collections.IHashCodeProvider" /> implementation is passed to the constructor, the <see cref="M:System.Collections.IHashCodeProvider.GetHashCode(System.Object)" /> method of that implementation is used as the hash code provider. If an <see cref="T:System.Collections.IComparer" /> implementation is passed to the constructor, the <see cref="M:System.Collections.IComparer.Compare(System.Object,System.Object)" /> method of that implementation is used as the comparer.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Supplies a hash code for an object, using a custom hash function.</para>
</summary>
</Docs>
<Members>
<Member MemberName="GetHashCode">
<MemberSignature Language="ILASM" Value=".method public hidebysig virtual abstract int32 GetHashCode(object obj)" />
<MemberSignature Language="C#" Value="public int GetHashCode (object obj);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance int32 GetHashCode(object obj) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Int32</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="obj" Type="System.Object" />
</Parameters>
<Docs>
<exception cref="T:System.ArgumentNullException">
<paramref name="obj " /> is <see langword="null" />.</exception>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The return value from this method must not be persisted for two reasons. First, the hash function of a class might be altered to generate a better distribution, rendering any values from the old hash function useless. Second, the default implementation of this class does not guarantee that the same value will be returned by different instances.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Returns a hash code for the specified object.</para>
</summary>
<returns>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>A hash code for the specified object.</para>
</returns>
<param name="obj">
<attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Object" /> for which a hash code is to be returned. </param>
</Docs>
<Excluded>0</Excluded>
</Member>
</Members>
<TypeExcluded>0</TypeExcluded>
</Type>

View File

@@ -0,0 +1,392 @@
<?xml version="1.0" encoding="utf-8"?>
<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" />
<TypeSignature Language="ILAsm" Value=".class public interface auto ansi abstract IList implements class System.Collections.ICollection, class System.Collections.IEnumerable" />
<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>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Interfaces>
<Interface>
<InterfaceName>System.Collections.ICollection</InterfaceName>
</Interface>
</Interfaces>
<Attributes>
<Attribute>
<AttributeName>System.Runtime.InteropServices.ComVisible(true)</AttributeName>
</Attribute>
</Attributes>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>
<see cref="T:System.Collections.IList" /> is a descendant of the <see cref="T:System.Collections.ICollection" /> interface and is the base interface of all non-generic lists. <see cref="T:System.Collections.IList" /> implementations fall into three categories: read-only, fixed-size, and variable-size. A read-only <see cref="T:System.Collections.IList" /> cannot be modified. A fixed-size <see cref="T:System.Collections.IList" /> does not allow the addition or removal of elements, but it allows the modification of existing elements. A variable-size <see cref="T:System.Collections.IList" /> allows the addition, removal, and modification of elements.</para>
<para>For the generic version of this interface, see <see cref="T:System.Collections.Generic.IList`1" />.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Represents a non-generic collection of objects that can be individually accessed by index.</para>
</summary>
</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);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance int32 Add(object value) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Int32</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="value" Type="System.Object" />
</Parameters>
<Docs>
<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>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Adds an item to the <see cref="T:System.Collections.IList" />.</para>
</summary>
<returns>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The position into which the new element was inserted, or -1 to indicate that the item was not inserted into the collection.</para>
</returns>
<param name="value">
<attribution license="cc4" from="Microsoft" modified="false" />The object to add to the <see cref="T:System.Collections.IList" />. </param>
</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 ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Clear() cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<exception cref="T:System.NotSupportedException">
<para>The current instance is read-only. </para>
</exception>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Implementations of this method can vary in how they handle the <see cref="P:System.Collections.ICollection.Count" /> and the capacity of a collection. Typically, the count is set to zero, and references to other objects from elements of the collection are also released. The capacity can be set to zero or a default value, or it can remain unchanged.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Removes all items from the <see cref="T:System.Collections.IList" />.</para>
</summary>
</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);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance bool Contains(object value) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="value" Type="System.Object" />
</Parameters>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Starting with the .NET Framework 2.0, this method uses the collections objects <see cref="M:System.Object.Equals(System.Object)" /> and <see cref="M:System.IComparable.CompareTo(System.Object)" /> methods on <paramref name="item" /> to determine whether item exists. In the earlier versions of the .NET Framework, this determination was made by using the <see cref="M:System.Object.Equals(System.Object)" /> and <see cref="M:System.IComparable.CompareTo(System.Object)" /> methods of the <paramref name="item" /> parameter on the objects in the collection.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Determines whether the <see cref="T:System.Collections.IList" /> contains a specific value.</para>
</summary>
<returns>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>true if the <see cref="T:System.Object" /> is found in the <see cref="T:System.Collections.IList" />; otherwise, false.</para>
</returns>
<param name="value">
<attribution license="cc4" from="Microsoft" modified="false" />The object to locate in the <see cref="T:System.Collections.IList" />. </param>
</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);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance int32 IndexOf(object value) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Int32</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="value" Type="System.Object" />
</Parameters>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Starting with the .NET Framework 2.0, this method uses the collections objects <see cref="M:System.Object.Equals(System.Object)" /> and <see cref="M:System.IComparable.CompareTo(System.Object)" /> methods on <paramref name="item" /> to determine whether item exists. In the earlier versions of the .NET Framework, this determination was made by using the <see cref="M:System.Object.Equals(System.Object)" /> and <see cref="M:System.IComparable.CompareTo(System.Object)" /> methods of the <paramref name="item" /> parameter on the objects in the collection.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Determines the index of a specific item in the <see cref="T:System.Collections.IList" />.</para>
</summary>
<returns>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The index of <paramref name="value" /> if found in the list; otherwise, -1.</para>
</returns>
<param name="value">
<attribution license="cc4" from="Microsoft" modified="false" />The object to locate in the <see cref="T:System.Collections.IList" />. </param>
</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);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Insert(int32 index, object value) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="index" Type="System.Int32" />
<Parameter Name="value" Type="System.Object" />
</Parameters>
<Docs>
<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>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>If <paramref name="index" /> equals the number of items in the <see cref="T:System.Collections.IList" />, then <paramref name="value" /> is appended to the end.</para>
<para>In collections of contiguous elements, such as lists, the elements that follow the insertion point move down to accommodate the new element. If the collection is indexed, the indexes of the elements that are moved are also updated. This behavior does not apply to collections where elements are conceptually grouped into buckets, such as a hash table.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Inserts an item to the <see cref="T:System.Collections.IList" /> at the specified index.</para>
</summary>
<param name="index">
<attribution license="cc4" from="Microsoft" modified="false" />The zero-based index at which <paramref name="value" /> should be inserted. </param>
<param name="value">
<attribution license="cc4" from="Microsoft" modified="false" />The object to insert into the <see cref="T:System.Collections.IList" />. </param>
</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; }" />
<MemberSignature Language="ILAsm" Value=".property instance bool IsFixedSize" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<value>
<para>
<see langword="true" /> if the
current instance has a fixed size; otherwise,
<see langword="false" />. </para>
</value>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>A collection with a fixed size does not allow the addition or removal of elements after the collection is created, but it allows the modification of existing elements.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Gets a value indicating whether the <see cref="T:System.Collections.IList" /> has a fixed size.</para>
</summary>
</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; }" />
<MemberSignature Language="ILAsm" Value=".property instance bool IsReadOnly" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<value>
<para>
<see langword="true" /> if the
current instance is read-only; otherwise,
<see langword="false" />.</para>
</value>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>A collection that is read-only does not allow the addition, removal, or modification of elements after the collection is created.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Gets a value indicating whether the <see cref="T:System.Collections.IList" /> is read-only.</para>
</summary>
</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] { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance object Item(int32)" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<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);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Remove(object value) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="value" Type="System.Object" />
</Parameters>
<Docs>
<exception cref="T:System.NotSupportedException">
<para>The current instance is read-only or has a fixed size.</para>
</exception>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>In collections of contiguous elements, such as lists, the elements that follow the removed element move up to occupy the vacated spot. If the collection is indexed, the indexes of the elements that are moved are also updated. This behavior does not apply to collections where elements are conceptually grouped into buckets, such as a hash table. If <paramref name="value" /> is not found in the <see cref="T:System.Collections.IList" />, the <see cref="T:System.Collections.IList" /> remains unchanged and no exception is thrown.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Removes the first occurrence of a specific object from the <see cref="T:System.Collections.IList" />.</para>
</summary>
<param name="value">
<attribution license="cc4" from="Microsoft" modified="false" />The object to remove from the <see cref="T:System.Collections.IList" />. </param>
</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);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void RemoveAt(int32 index) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="index" Type="System.Int32" />
</Parameters>
<Docs>
<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>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>In collections of contiguous elements, such as lists, the elements that follow the removed element move up to occupy the vacated spot. If the collection is indexed, the indexes of the elements that are moved are also updated. This behavior does not apply to collections where elements are conceptually grouped into buckets, such as a hash table.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Removes the <see cref="T:System.Collections.IList" /> item at the specified index.</para>
</summary>
<param name="index">
<attribution license="cc4" from="Microsoft" modified="false" />The zero-based index of the item to remove. </param>
</Docs>
<Excluded>0</Excluded>
</Member>
</Members>
<TypeExcluded>0</TypeExcluded>
</Type>

View File

@@ -0,0 +1,108 @@
<?xml version="1.0" encoding="utf-8"?>
<Type Name="IStructuralComparable" FullName="System.Collections.IStructuralComparable">
<TypeSignature Language="C#" Value="public interface IStructuralComparable" />
<TypeSignature Language="ILAsm" Value=".class public interface auto ansi abstract IStructuralComparable" />
<AssemblyInfo>
<AssemblyName>mscorlib</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Interfaces />
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The <see cref="T:System.Collections.IStructuralComparable" /> interface enables you to implement customized comparisons for collection members. That is, you can define precisely what it means for one collection object to precede, follow, or occur in the same position in the sort order as a second collection object. You can then specify that this definition be used with a collection type that accepts the <see cref="T:System.Collections.IStructuralComparable" /> interface. </para>
<para>The interface has a single member, <see cref="M:System.Collections.IStructuralComparable.CompareTo(System.Object,System.Collections.IComparer)" />, which determines whether the current collection object is less than, equal to, or greater than a second object in the sort order. The actual comparison of the members or elements in the current instance with those in a second object is performed by an <see cref="T:System.Collections.IComparer" /> interface implementation, which contains the definition of your custom comparison.</para>
<block subset="none" type="note">
<para>The <see cref="T:System.Collections.IStructuralComparable" /> interface supports only structural comparisons for sorting or ordering. The <see cref="T:System.Collections.IStructuralEquatable" /> interface supports custom comparisons for structural equality.</para>
</block>
<para>The .NET Framework provides two default comparers. One is returned by the <see cref="P:System.Collections.StructuralComparisons.StructuralComparer" /> property; the other is returned by the <see cref="P:System.Collections.Generic.Comparer`1.Default" /> property.</para>
<para>The generic tuple classes (<see cref="T:System.Tuple`1" />, <see cref="T:System.Tuple`2" />, <see cref="T:System.Tuple`3" />, and so on) and the <see cref="T:System.Array" /> class provide explicit implementations of the <see cref="T:System.Collections.IStructuralComparable" /> interface. By casting (in C#) or converting (in Visual Basic) the current instance of an array or tuple to an <see cref="T:System.Collections.IStructuralComparable" /> interface value and providing your <see cref="T:System.Collections.IComparer" /> implementation as an argument to the <see cref="M:System.Collections.IStructuralComparable.CompareTo(System.Object,System.Collections.IComparer)" /> method, you can define a custom sort order for the array or collection. However, you do not call the <see cref="M:System.Collections.IStructuralComparable.CompareTo(System.Object,System.Collections.IComparer)" /> method directly in most cases. Instead, the <see cref="M:System.Collections.IStructuralComparable.CompareTo(System.Object,System.Collections.IComparer)" /> method is called by sorting methods such as <see cref="M:System.Array.Sort(System.Array,System.Collections.IComparer)" />. In this case, you define your <see cref="T:System.Collections.IComparer" /> implementation and pass it as an argument to a sorting method or collection object's class constructor. The <see cref="M:System.Collections.IStructuralComparable.CompareTo(System.Object,System.Collections.IComparer)" /> method with your custom comparer is then called automatically whenever the collection is sorted. </para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Supports the structural comparison of collection objects.</para>
</summary>
</Docs>
<Members>
<Member MemberName="CompareTo">
<MemberSignature Language="C#" Value="public int CompareTo (object other, System.Collections.IComparer comparer);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance int32 CompareTo(object other, class System.Collections.IComparer comparer) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Int32</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="other" Type="System.Object" />
<Parameter Name="comparer" Type="System.Collections.IComparer" />
</Parameters>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The <see cref="M:System.Collections.IStructuralComparable.CompareTo(System.Object,System.Collections.IComparer)" /> method supports custom structural comparison and sorting of array and tuple objects. The <see cref="M:System.Collections.IStructuralComparable.CompareTo(System.Object,System.Collections.IComparer)" /> method calls the <paramref name="comparer" /> object's <see cref="M:System.Collections.IComparer.Compare(System.Object,System.Object)" /> method to compare individual array elements or tuple components, starting with the first element or component. The individual calls to <see cref="M:System.Collections.IComparer.Compare(System.Object,System.Object)" /> end and the <see cref="M:System.Collections.IStructuralComparable.CompareTo(System.Object,System.Collections.IComparer)" /> method returns a value when one of the following conditions becomes true:</para>
<list type="bullet">
<item>
<para>The <see cref="M:System.Collections.IComparer.Compare(System.Object,System.Object)" /> method returns -1.</para>
</item>
<item>
<para>The <see cref="M:System.Collections.IComparer.Compare(System.Object,System.Object)" /> method returns 1.</para>
</item>
<item>
<para>The <see cref="M:System.Collections.IComparer.Compare(System.Object,System.Object)" /> method is called for the last element or component in the collection object.</para>
</item>
</list>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Determines whether the current collection object precedes, occurs in the same position as, or follows another object in the sort order.</para>
</summary>
<returns>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>An integer that indicates the relationship of the current collection object to <paramref name="other" />, as shown in the following table.</para>
<list type="table">
<listheader>
<item>
<term>
<para>Return value</para>
</term>
<description>
<para>Description</para>
</description>
</item>
</listheader>
<item>
<term>
<para>-1</para>
</term>
<description>
<para>The current instance precedes <paramref name="other" />.</para>
</description>
</item>
<item>
<term>
<para>0</para>
</term>
<description>
<para>The current instance and <paramref name="other" /> are equal.</para>
</description>
</item>
<item>
<term>
<para>1</para>
</term>
<description>
<para>The current instance follows <paramref name="other" />.</para>
</description>
</item>
</list>
</returns>
<param name="other">
<attribution license="cc4" from="Microsoft" modified="false" />The object to compare with the current instance.</param>
<param name="comparer">
<attribution license="cc4" from="Microsoft" modified="false" />An object that compares members of the current collection object with the corresponding members of <paramref name="other" />.</param>
</Docs>
</Member>
</Members>
</Type>

View File

@@ -0,0 +1,90 @@
<?xml version="1.0" encoding="utf-8"?>
<Type Name="IStructuralEquatable" FullName="System.Collections.IStructuralEquatable">
<TypeSignature Language="C#" Value="public interface IStructuralEquatable" />
<TypeSignature Language="ILAsm" Value=".class public interface auto ansi abstract IStructuralEquatable" />
<AssemblyInfo>
<AssemblyName>mscorlib</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Interfaces />
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Structural equality means that two objects are equal because they have equal values. It differs from reference equality, which indicates that two object references are equal because they reference the same physical object. The <see cref="T:System.Collections.IStructuralEquatable" /> interface enables you to implement customized comparisons to check for the structural equality of collection objects. That is, you can create your own definition of structural equality and specify that this definition be used with a collection type that accepts the <see cref="T:System.Collections.IStructuralEquatable" /> interface. The interface has two members: <see cref="M:System.Collections.IStructuralEquatable.Equals(System.Object,System.Collections.IEqualityComparer)" />, which tests for equality by using a specified <see cref="T:System.Collections.IEqualityComparer" /> implementation, and <see cref="M:System.Collections.IStructuralEquatable.GetHashCode(System.Collections.IEqualityComparer)" />, which returns identical hash codes for objects that are equal.</para>
<block subset="none" type="note">
<para>The <see cref="T:System.Collections.IStructuralEquatable" /> interface supports only custom comparisons for structural equality. The <see cref="T:System.Collections.IStructuralComparable" /> interface supports custom structural comparisons for sorting and ordering. </para>
</block>
<para>The .NET Framework also provides default equality comparers, which are returned by the <see cref="P:System.Collections.Generic.EqualityComparer`1.Default" /> and <see cref="P:System.Collections.StructuralComparisons.StructuralEqualityComparer" /> properties. For more information, see the example. </para>
<para>The generic tuple classes (<see cref="T:System.Tuple`1" />, <see cref="T:System.Tuple`2" />, <see cref="T:System.Tuple`3" />, and so on) and the <see cref="T:System.Array" /> class provide explicit implementations of the <see cref="T:System.Collections.IStructuralEquatable" /> interface. By casting (in C#) or converting (in Visual Basic) the current instance of an array or tuple to an <see cref="T:System.Collections.IStructuralEquatable" /> interface value and providing your <see cref="T:System.Collections.IEqualityComparer" /> implementation as an argument to the <see cref="M:System.Collections.IStructuralEquatable.Equals(System.Object,System.Collections.IEqualityComparer)" /> method, you can define a custom equality comparison for the array or collection. </para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Defines methods to support the comparison of objects for structural equality. </para>
</summary>
</Docs>
<Members>
<Member MemberName="Equals">
<MemberSignature Language="C#" Value="public bool Equals (object other, System.Collections.IEqualityComparer comparer);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance bool Equals(object other, class System.Collections.IEqualityComparer comparer) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="other" Type="System.Object" />
<Parameter Name="comparer" Type="System.Collections.IEqualityComparer" />
</Parameters>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The <see cref="M:System.Collections.IStructuralEquatable.Equals(System.Object,System.Collections.IEqualityComparer)" /> method supports custom structural comparison of array and tuple objects. This method in turn calls the <paramref name="comparer" /> object's <see cref="M:System.Collections.IEqualityComparer.Equals(System.Object,System.Object)" /> method to compare individual array elements or tuple components, starting with the first element or component. The individual calls to <see cref="M:System.Collections.IEqualityComparer.Equals(System.Object,System.Object)" /> end and the <see cref="M:System.Collections.IStructuralEquatable.Equals(System.Object,System.Collections.IEqualityComparer)" /> method returns a value either when a method call returns false or after all array elements or tuple components have been compared. </para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Determines whether an object is structurally equal to the current instance.</para>
</summary>
<returns>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>true if the two objects are equal; otherwise, false.</para>
</returns>
<param name="other">
<attribution license="cc4" from="Microsoft" modified="false" />The object to compare with the current instance.</param>
<param name="comparer">
<attribution license="cc4" from="Microsoft" modified="false" />An object that determines whether the current instance and <paramref name="other" /> are equal. </param>
</Docs>
</Member>
<Member MemberName="GetHashCode">
<MemberSignature Language="C#" Value="public int GetHashCode (System.Collections.IEqualityComparer comparer);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance int32 GetHashCode(class System.Collections.IEqualityComparer comparer) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Int32</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="comparer" Type="System.Collections.IEqualityComparer" />
</Parameters>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Implement this method to return customized hash codes for collection objects that correspond to the customized comparison for structural equality provided by the <see cref="M:System.Collections.IStructuralEquatable.Equals(System.Object,System.Collections.IEqualityComparer)" /> method.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Returns a hash code for the current instance.</para>
</summary>
<returns>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The hash code for the current instance.</para>
</returns>
<param name="comparer">
<attribution license="cc4" from="Microsoft" modified="false" />An object that computes the hash code of the current object.</param>
</Docs>
</Member>
</Members>
</Type>

Some files were not shown because too many files have changed in this diff Show More