[w32file] Move MonoIO.Find{First,Next,Close} to managed
[mono.git] / mcs / tools / mdoc / Test / TestEcmaDocs.xml
1 <!-- ====================================================================== -->\r
2 <!-- This XML is a description of the Common Language Infrastructure (CLI) library. -->\r
3 <!-- This file is a normative part of Partition IV of the following standards: ISO/IEC 23271 and ECMA 335 -->\r
4 <!-- ====================================================================== -->\r
5 <!DOCTYPE Libraries SYSTEM "CLILibraryTypes.dtd">\r
6 <Libraries>\r
7         <Types Library="BCL">\r
8                 <Type Name="Action&lt;T&gt;" FullName="System.Action&lt;T&gt;" FullNameSP="System_Action&lt;T&gt;">\r
9                         <TypeSignature Language="ILAsm" Value=".class public sealed serializable Action`1&lt;T&gt; extends System.Delegate\r
10  { .method public hidebysig newslot virtual instance void Invoke(!0 obj) }"/>\r
11                         <TypeSignature Language="C#" Value="public delegate void Action&lt;T&gt;(T obj);"/>\r
12                         <MemberOfLibrary>BCL</MemberOfLibrary>\r
13                         <AssemblyInfo>\r
14                                 <AssemblyName>mscorlib</AssemblyName>\r
15                                 <AssemblyPublicKey>[00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 ]</AssemblyPublicKey>\r
16                                 <AssemblyVersion>2.0.x.x</AssemblyVersion>\r
17                                 <AssemblyCulture>none</AssemblyCulture>\r
18                                 <Attributes>\r
19                                         <Attribute>\r
20                                                 <AttributeName>CLSCompliantAttribute(true)</AttributeName>\r
21                                                 <Excluded>0</Excluded>\r
22                                         </Attribute>\r
23                                 </Attributes>\r
24                         </AssemblyInfo>\r
25                         <Docs>\r
26                                 <summary>\r
27                                         <para> Represents the method that performs an action on the specified object.</para>\r
28                                 </summary>\r
29                                 <param name="obj">The object on which to perform an action.</param>\r
30                                 <remarks>\r
31                                         <block subset="none" type="note">\r
32                                                 <para>This delegate is used by the method <see cref="M:System.Array.ForEach"/>\r
33                                                         <see langword="(T[], Action&lt;T&gt;)"/>, and in <see cref="T:System.Collections.Generic.List&lt;T&gt;"/> to perform an action on each element of the collection.</para>\r
34                                         </block>\r
35                                 </remarks>\r
36                         </Docs>\r
37                         <Base>\r
38                                 <BaseTypeName>System.Delegate</BaseTypeName>\r
39                         </Base>\r
40                         <Interfaces>\r
41                                 <Interface>\r
42                                         <InterfaceName>System.ICloneable</InterfaceName>\r
43                                         <Excluded>0</Excluded>\r
44                                 </Interface>\r
45                         </Interfaces>\r
46                         <Members/>\r
47                         <TypeExcluded>0</TypeExcluded>\r
48                 </Type>\r
49                 <Type Name="AsyncCallback" FullName="System.AsyncCallback" FullNameSP="System_AsyncCallback">\r
50                         <TypeSignature Language="ILAsm" Value=".class public sealed serializable AsyncCallback extends System.Delegate\r
51  { .method public hidebysig newslot virtual instance void Invoke(IAsyncResult ar) }"/>\r
52                         <TypeSignature Language="C#" Value="public delegate void AsyncCallback(IAsyncResult ar);"/>\r
53                         <MemberOfLibrary>BCL</MemberOfLibrary>\r
54                         <AssemblyInfo>\r
55                                 <AssemblyName>mscorlib</AssemblyName>\r
56                                 <AssemblyPublicKey>[00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 ]</AssemblyPublicKey>\r
57                                 <AssemblyVersion>2.0.x.x</AssemblyVersion>\r
58                                 <AssemblyCulture>none</AssemblyCulture>\r
59                                 <Attributes>\r
60                                         <Attribute>\r
61                                                 <AttributeName>CLSCompliantAttribute(true)</AttributeName>\r
62                                                 <Excluded>0</Excluded>\r
63                                         </Attribute>\r
64                                 </Attributes>\r
65                         </AssemblyInfo>\r
66                         <Docs>\r
67                                 <summary>\r
68                                         <para> References one or more methods called when an asynchronous operation completes.</para>\r
69                                 </summary>\r
70                                 <param name="ar">A <see cref="T:System.IAsyncResult"/> object containing information about the asynchronous operation that has completed.</param>\r
71                         </Docs>\r
72                         <Base>\r
73                                 <BaseTypeName>System.Delegate</BaseTypeName>\r
74                         </Base>\r
75                         <Interfaces>\r
76                                 <Interface>\r
77                                         <InterfaceName>System.ICloneable</InterfaceName>\r
78                                         <Excluded>0</Excluded>\r
79                                 </Interface>\r
80                         </Interfaces>\r
81                         <Members/>\r
82                         <TypeExcluded>0</TypeExcluded>\r
83                 </Type>\r
84                 <Type Name="Environment" FullName="System.Environment" FullNameSP="System_Environment">\r
85                         <TypeSignature Language="ILAsm" Value=".class public sealed Environment extends System.Object"/>\r
86                         <TypeSignature Language="C#" Value="public sealed class Environment"/>\r
87                         <MemberOfLibrary>BCL</MemberOfLibrary>\r
88                         <AssemblyInfo>\r
89                                 <AssemblyName>mscorlib</AssemblyName>\r
90                                 <AssemblyPublicKey>[00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 ]</AssemblyPublicKey>\r
91                                 <AssemblyVersion>2.0.x.x</AssemblyVersion>\r
92                                 <AssemblyCulture>none</AssemblyCulture>\r
93                                 <Attributes>\r
94                                         <Attribute>\r
95                                                 <AttributeName>CLSCompliantAttribute(true)</AttributeName>\r
96                                                 <Excluded>0</Excluded>\r
97                                         </Attribute>\r
98                                 </Attributes>\r
99                         </AssemblyInfo>\r
100                         <ThreadingSafetyStatement>All public static members of this type are safe for multithreaded operations. No instance members are guaranteed to be thread safe.</ThreadingSafetyStatement>\r
101                         <Docs>\r
102                                 <summary>\r
103                                         <para> Provides the current settings for, and information about, the execution environment.</para>\r
104                                 </summary>\r
105                                 <remarks>\r
106                                         <block subset="none" type="note">\r
107                                                 <para>Use this class to retrieve the following \r
108  information:</para>\r
109                                                 <list type="bullet">\r
110                                                         <item>\r
111                                                                 <term>Command line arguments</term>\r
112                                                         </item>\r
113                                                         <item>\r
114                                                                 <term>Exit codes</term>\r
115                                                         </item>\r
116                                                         <item>\r
117                                                                 <term>Environment variable settings</term>\r
118                                                         </item>\r
119                                                         <item>\r
120                                                                 <term>Contents of the call stack</term>\r
121                                                         </item>\r
122                                                         <item>\r
123                                                                 <term>Time since last system boot</term>\r
124                                                         </item>\r
125                                                         <item>\r
126                                                                 <term>Version of the execution engine</term>\r
127                                                         </item>\r
128                                                 </list>\r
129                                         </block>\r
130                                 </remarks>\r
131                         </Docs>\r
132                         <Base>\r
133                                 <BaseTypeName>System.Object</BaseTypeName>\r
134                         </Base>\r
135                         <Interfaces/>\r
136                         <Members>\r
137                                 <Member MemberName="GetFolderPath">\r
138                                         <MemberSignature Language="C#" Value="public static string GetCommandLineArgs(Environment.SpecialFolder folder);"/>\r
139                                         <MemberType>Method</MemberType>\r
140                                         <ReturnValue>\r
141                                                 <ReturnType>System.String</ReturnType>\r
142                                         </ReturnValue>\r
143                                         <Parameters>\r
144                                                 <Parameter Name="folder" Type="System.Environment+SpecialFolder" />\r
145                                         </Parameters>\r
146                                         <Docs>\r
147                                                 <summary>\r
148                                                         <para> Returns the arguments specified on the command\r
149       line.</para>\r
150                                                 </summary>\r
151                                                 <param name="folder">\r
152                                                         <para>A <see cref="T:System.Environment+SpecialFolder" />.</para>\r
153                                                 </param>\r
154                                                 <returns>\r
155                                                         <para> Returns a <see cref="T:System.String"/> array. Each <see cref="T:System.String"/> in the array\r
156    contains a single command line argument.</para>\r
157                                                 </returns>\r
158                                                 <remarks>\r
159                                                         <para>The first element in the array contains the filename of\r
160       the executing program. If the filename is not available, the first element is\r
161       equal to <see cref="F:System.String.Empty"/>. The remaining elements contain any additional tokens\r
162       entered on the command line.</para>\r
163                                                         <block subset="none" type="note">\r
164                                                                 <para>The program filename can, but is not required to,\r
165          include path information.</para>\r
166                                                                 <para>To obtain the command line as a single <see cref="T:System.String"/>, use the <see cref="P:System.Environment.CommandLine"/>\r
167    property.</para>\r
168                                                         </block>\r
169                                                 </remarks>\r
170                                                 <exception cref="T:System.ArgumentException">foo</exception>\r
171                                                 <permission cref="T:System.SomePermission">bar</permission>\r
172                                                 <altmember cref="T:System.SomeMember">alt member</altmember>\r
173                                                 <seealso cref="T:System.SomeMember">another member</seealso>\r
174                                                 <unrecognized attribute="a-ko">should be appended to new docs</unrecognized>\r
175                                         </Docs>\r
176                                         <Excluded>0</Excluded>\r
177                                 </Member>\r
178                         </Members>\r
179                         <TypeExcluded>0</TypeExcluded>\r
180                 </Type>\r
181                 <Type Name="Array" FullName="System.Array" FullNameSP="System_Array">\r
182                         <TypeSignature Language="ILAsm" Value=".class public abstract serializable Array extends System.Object implements System.ICloneable, System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList"/>\r
183                         <TypeSignature Language="C#" Value="public abstract class Array : ICloneable, ICollection, IEnumerable, IList"/>\r
184                         <MemberOfLibrary>BCL</MemberOfLibrary>\r
185                         <AssemblyInfo>\r
186                                 <AssemblyName>mscorlib</AssemblyName>\r
187                                 <AssemblyPublicKey>[00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 ]</AssemblyPublicKey>\r
188                                 <AssemblyVersion>2.0.x.x</AssemblyVersion>\r
189                                 <AssemblyCulture>none</AssemblyCulture>\r
190                                 <Attributes>\r
191                                         <Attribute>\r
192                                                 <AttributeName>CLSCompliantAttribute(true)</AttributeName>\r
193                                                 <Excluded>0</Excluded>\r
194                                         </Attribute>\r
195                                 </Attributes>\r
196                         </AssemblyInfo>\r
197                         <ThreadingSafetyStatement>All public static members of this type are safe for multithreaded operations. No instance members are guaranteed to be thread safe.</ThreadingSafetyStatement>\r
198                         <Docs>\r
199                                 <summary>\r
200                                         <para> Serves as the base class for arrays. Provides methods for creating,\r
201       copying, manipulating, searching, and sorting arrays.</para>\r
202                                 </summary>\r
203                                 <remarks>\r
204                                         <para>This class is intended to be used as a base class by\r
205       language implementations that support arrays. Only the system can derive from\r
206       this type: derived classes of <see cref="T:System.Array"/> are not to be created by the developer.</para>\r
207                                         <block subset="none" type="note">\r
208                                                 <para>An array is a collection of\r
209          identically typed data <paramref name="elements"/> that are accessed and referenced by\r
210          sets of integral <paramref name="indices"/>. </para>\r
211                                                 <para>The <paramref name="rank"/> of an array is the number\r
212       of dimensions in the array. Each dimension has its own set of indices. An array\r
213       with a rank greater than one can have a different lower\r
214       bound and a different number of elements for each dimension. Multidimensional\r
215       arrays (i.e. arrays with a rank greater than one) are processed in row-major\r
216       order. </para>\r
217                                                 <para>The <paramref name="lower bound"/> of a dimension\r
218    is the starting index of that dimension. </para>\r
219                                                 <para>The <paramref name="length"/> of an array is the total number of elements contained in all of its\r
220 dimensions. </para>\r
221                                                 <para>A <paramref name="vector"/> is a\r
222 one-dimensional array with a <paramref name="lower bound"/> of '0'. </para>\r
223                                                 <para>If the implementer creates a derived class of <see cref="T:System.Array"/>, expected <see cref="T:System.Array"/> behavior\r
224 cannot be guaranteed. For information on array-like objects with increased\r
225 functionality, see the <see cref="T:System.Collections.IList"/> and <see cref="T:System.Collections.Generic.IList&lt;T&gt;"/> interfaces. For more information regarding the use of arrays versus the use\r
226 of collections, see Partition V of the CLI Specification. </para>\r
227                                         </block>\r
228                                         <para>Every specific <see cref="T:System.Array"/> type has three instance methods defined on it.\r
229    While some programming languages allow direct access to these methods, they are\r
230    primarily intended to be called by the output of compilers based on language\r
231    syntax that deals with arrays. </para>\r
232                                         <list type="bullet">\r
233                                                 <item>\r
234                                                         <term>\r
235                                                                 <para>\r
236                                                                         <c>Get</c>: Takes as many <see cref="T:System.Int32"/> arguments as the array\r
237    has dimensions and returns the value stored at the given index. It throws a\r
238 <see cref="T:System.IndexOutOfRangeException"/> \r
239 exception for invalid indices. </para>\r
240                                                         </term>\r
241                                                 </item>\r
242                                                 <item>\r
243                                                         <term>\r
244                                                                 <para>\r
245                                                                         <c>Set</c>: Takes as many <see cref="T:System.Int32"/> arguments as the array\r
246    has dimensions, plus one additional argument (the last argument) which has the\r
247    same type as an array element. It stores the final value in the specified\r
248    index of the array. It throws a <see cref="T:System.IndexOutOfRangeException"/>\r
249    exception for invalid indices. </para>\r
250                                                         </term>\r
251                                                 </item>\r
252                                                 <item>\r
253                                                         <term>\r
254                                                                 <para>\r
255                                                                         <c>Address</c>: Takes as many <see cref="T:System.Int32"/> arguments as the\r
256    array has dimensions and returns the address of the element at the given index.\r
257    It throws a <see cref="T:System.IndexOutOfRangeException"/>\r
258    exception for invalid indices. </para>\r
259                                                         </term>\r
260                                                 </item>\r
261                                         </list>\r
262                                         <para>In addition, every specific <see cref="T:System.Array"/> type has a constructor on it that takes as many non-negative \r
263 <see cref="T:System.Int32"/> \r
264 arguments as the array has dimensions. The arguments specify the\r
265 number of elements in each dimension, and a lower bound of 0. Thus, a\r
266 two-dimensional array of <see cref="T:System.Int32"/> objects would have a constructor that could be called with\r
267 <c>(2, 4)</c> as its arguments to create an array of eight zeros with the first dimension indexed\r
268 with 0 and 1 and the second dimension indexed with 0, 1, 2, and 3. </para>\r
269                                         <para>For all specific array types except vectors (i.e. those\r
270    permitted to have non-zero lower bounds and those with more than one dimension)\r
271    there is an additional constructor. It takes twice as many arguments as the\r
272    array has dimensions. The arguments are considered in pairs, with the first of\r
273    the pair specifying the lower bound for that dimension and the second specifying\r
274    the total number of elements in that dimension. Thus, a two-dimensional array\r
275    of <see cref="T:System.Int32"/>\r
276    \r
277    objects would also have a constructor that could be called with <c>(-1, 2, 1, 3)</c> as its arguments,\r
278 specifying an array of 6 zeros, with the first dimension indexed by -1 and 0,\r
279 and the second dimension indexed by 1, 2, and 3. </para>\r
280                                         <para>Enumeration over an array occurs in ascending row-major order, starting from the first element. (For example, a 2x3 array is traversed in the order [0,0], [0,1], [0,2], [1,0], [1,1], and [1,2].)</para>\r
281                                         <para>Parallel implementation of methods taking a <see cref="T:System.Predicate"/> argument are not permitted.</para>\r
282                                 </remarks>\r
283                         </Docs>\r
284                         <Base>\r
285                                 <BaseTypeName>System.Object</BaseTypeName>\r
286                         </Base>\r
287                         <Interfaces>\r
288                                 <Interface>\r
289                                         <InterfaceName>System.ICloneable</InterfaceName>\r
290                                         <Excluded>0</Excluded>\r
291                                 </Interface>\r
292                                 <Interface>\r
293                                         <InterfaceName>System.Collections.ICollection</InterfaceName>\r
294                                         <Excluded>0</Excluded>\r
295                                 </Interface>\r
296                                 <Interface>\r
297                                         <InterfaceName>System.Collections.IEnumerable</InterfaceName>\r
298                                         <Excluded>0</Excluded>\r
299                                 </Interface>\r
300                                 <Interface>\r
301                                         <InterfaceName>System.Collections.IList</InterfaceName>\r
302                                         <Excluded>0</Excluded>\r
303                                 </Interface>\r
304                         </Interfaces>\r
305                         <Members>\r
306                                 <Member MemberName=".ctor">\r
307                                         <MemberSignature Language="ILAsm" Value="private rtspecialname specialname instance void .ctor()"/>\r
308                                         <MemberSignature Language="C#" Value="private Array();"/>\r
309                                         <MemberType>Constructor</MemberType>\r
310                                         <ReturnValue/>\r
311                                         <Parameters/>\r
312                                         <Docs>\r
313                                                 <summary>Constructs a new instance of the <see cref="T:System.Array"/> class.</summary>\r
314                                         </Docs>\r
315                                         <Excluded>0</Excluded>\r
316                                 </Member>\r
317                                 <Member MemberName="AsReadOnly&lt;T&gt;">\r
318                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static class System.Collections.Generic.IList`1&lt;!!0&gt; AsReadOnly&lt;T&gt;(!!0[] array)"/>\r
319                                         <MemberSignature Language="C#" Value="public static IList&lt;T&gt; AsReadOnly&lt;T&gt;(T[] array)"/>\r
320                                         <MemberType>Method</MemberType>\r
321                                         <ReturnValue>\r
322                                                 <ReturnType>System.Collections.Generic.IList&lt;T&gt;</ReturnType>\r
323                                         </ReturnValue>\r
324                                         <Parameters>\r
325                                                 <Parameter Name="array" Type="T[]"/>\r
326                                         </Parameters>\r
327                                         <Docs>\r
328                                                 <summary>\r
329                                                         <para>Returns a read-only <see cref="T: System.Collections.Generic.IList&lt;T&gt;"/> wrapper around the specified array.</para>\r
330                                                 </summary>\r
331                                                 <param name="array">The array to wrap in a read-only <see cref="T:System.Collections.Generic.IList&lt;T&gt;"/> wrapper.</param>\r
332                                                 <returns>\r
333                                                         <para>A read-only <see cref="T:System.Collections.Generic.IList&lt;T&gt;"/>  wrapper around the specified array.</para>\r
334                                                 </returns>\r
335                                                 <exception cref="T:System.ArgumentNullException">\r
336                                                         <paramref name="array"/> is <see langword="null"/>.</exception>\r
337                                                 <remarks>\r
338                                                         <para>\r
339                                                                 <block subset="none" type="note">To prevent any modifications to the array, expose the array only through this wrapper.</block>\r
340                                                         </para>\r
341                                                         <para>The returned <see langword="IList&lt;T&gt;"/> has the same enumeration order as the array it wraps.</para>\r
342                                                         <para>A collection that is read-only is simply a collection with a wrapper that prevents modifying the underlying array; therefore, if changes are made to the underlying array, the read-only collection reflects those changes.</para>\r
343                                                 </remarks>\r
344                                         </Docs>\r
345                                         <Excluded>0</Excluded>\r
346                                 </Member>\r
347                                 <Member MemberName="BinarySearch">\r
348                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static int32 BinarySearch(class System.Array array, int32 index, int32 length, object value, class System.Collections.IComparer comparer)"/>\r
349                                         <MemberSignature Language="C#" Value="public static int BinarySearch(Array array, int index, int length, object value, IComparer comparer);"/>\r
350                                         <MemberType>Method</MemberType>\r
351                                         <ReturnValue>\r
352                                                 <ReturnType>System.Int32</ReturnType>\r
353                                         </ReturnValue>\r
354                                         <Parameters>\r
355                                                 <Parameter Name="array" Type="System.Array"/>\r
356                                                 <Parameter Name="index" Type="System.Int32"/>\r
357                                                 <Parameter Name="length" Type="System.Int32"/>\r
358                                                 <Parameter Name="value" Type="System.Object"/>\r
359                                                 <Parameter Name="comparer" Type="System.Collections.IComparer"/>\r
360                                         </Parameters>\r
361                                         <Docs>\r
362                                                 <summary>\r
363                                                         <para>Searches the specified section of the specified\r
364       one-dimensional <see cref="T:System.Array"/> for the specified value, using the\r
365       specified <see cref="T:System.Collections.IComparer"/>\r
366       implementation.</para>\r
367                                                 </summary>\r
368                                                 <param name="array">A <see cref="T:System.Array"/> to search.</param>\r
369                                                 <param name="index">A <see cref="T:System.Int32"/> that contains the index at which searching starts. </param>\r
370                                                 <param name="length">A <see cref="T:System.Int32"/> that contains the number of elements to search, beginning with <paramref name="index"/> . </param>\r
371                                                 <param name="value">A <see cref="T:System.Object"/> for which to search. </param>\r
372                                                 <param name="comparer">\r
373                                                         <para>The <see cref="T:System.Collections.IComparer"/> implementation to use when comparing elements. Specify a null reference to use the <see cref="T:System.IComparable"/> implementation of each element.</para>\r
374                                                 </param>\r
375                                                 <returns>\r
376                                                         <para>A <see cref="T:System.Int32"/> with one of the following values based on the result of the search\r
377    operation.</para>\r
378                                                         <list type="table">\r
379                                                                 <listheader>\r
380                                                                         <term>Return Value</term>\r
381                                                                         <description>Description</description>\r
382                                                                 </listheader>\r
383                                                                 <item>\r
384                                                                         <term> The index of <paramref name="value"/> in the\r
385       array.</term>\r
386                                                                         <description>\r
387                                                                                 <paramref name="value"/> was found.</description>\r
388                                                                 </item>\r
389                                                                 <item>\r
390                                                                         <term> The bitwise complement of the index of the first element that is larger than\r
391    <paramref name="value"/>.</term>\r
392                                                                         <description>\r
393                                                                                 <paramref name="value"/> was not found, and at least one array element in the\r
394    range of <paramref name="index"/> to <paramref name="index"/> + <paramref name="length"/> - 1 was greater\r
395    than <paramref name="value"/>.</description>\r
396                                                                 </item>\r
397                                                                 <item>\r
398                                                                         <term> The bitwise complement of (<paramref name="index"/> + <paramref name="length"/>).</term>\r
399                                                                         <description>\r
400                                                                                 <paramref name="value"/> was not found, and <paramref name="value"/> was greater than all\r
401 array elements in the range of <paramref name="index"/> to <paramref name="index"/> +\r
402 <paramref name="length"/>- 1.</description>\r
403                                                                 </item>\r
404                                                         </list>\r
405                                                         <para>\r
406                                                                 <block subset="none" type="note"> If <paramref name="value"/> is\r
407 not found, the caller can take the bitwise complement of the return value to\r
408 determine the index of <paramref name="array"/> where <paramref name="value"/> would be found in the\r
409 range of <paramref name="index"/> to <paramref name="index"/> + <paramref name="length"/> - 1 if <paramref name="array"/> is\r
410 already sorted.</block>\r
411                                                         </para>\r
412                                                 </returns>\r
413                                                 <exception cref="T:System.ArgumentNullException">\r
414                                                         <paramref name="array"/> is <see langword="null"/>.</exception>\r
415                                                 <exception cref="T:System.RankException">\r
416                                                         <paramref name="array"/> has more than one dimension.</exception>\r
417                                                 <exception cref="T:System.ArgumentOutOfRangeException">\r
418                                                         <para>\r
419                                                                 <paramref name="index"/> is less than <paramref name="array"/>\r
420                                                                 <see langword=".GetLowerBound(0)"/>.</para>\r
421                                                         <para>-or-</para>\r
422                                                         <para>\r
423                                                                 <paramref name="length"/> is less than zero.</para>\r
424                                                 </exception>\r
425                                                 <exception cref="T:System.ArgumentException">\r
426                                                         <para>\r
427                                                                 <paramref name="index"/> + <paramref name="length"/> is greater than <paramref name="array"/>\r
428                                                                 <see langword=".GetLowerBound(0)"/> + <paramref name="array"/>\r
429                                                                 <see langword=".Length"/>.</para>\r
430                                                         <para> -or- </para>\r
431                                                         <para>\r
432                                                                 <paramref name="array"/>.UpperBound == <see cref="F:System.Int32.MaxValue"/>.</para>\r
433                                                 </exception>\r
434                                                 <exception cref="T:System.InvalidOperationException">\r
435                                                         <para>\r
436                                                                 <paramref name="comparer"/> is <see langword="null"/>, and both <paramref name="value"/> and at least one element of <paramref name="array"/> do not implement the <see cref="T:System.IComparable"/>  interface.</para>\r
437                                                 </exception>\r
438                                                 <remarks>\r
439                                                         <para>\r
440                                                                 <paramref name="value"/> is compared to each element of\r
441 <paramref name="array"/> using <paramref name="comparer"/> until an element with a value greater \r
442    than or equal to <paramref name="value"/> is found. If <paramref name="comparer"/> is <see langword="null"/>,\r
443    the <see cref="T:System.IComparable"/> interface of the element being compared - or of\r
444 <paramref name="value"/> if the element being compared does not implement the interface \r
445    -- is used. If <paramref name="value"/> does not implement the <see cref="T:System.IComparable"/> interface and is compared to an element\r
446    that does not implement the <see cref="T:System.IComparable"/> interface, a <see cref="T:System.InvalidOperationException"/>\r
447    exception is thrown. If <paramref name="array"/> is not already\r
448    sorted, correct results are not guaranteed.</para>\r
449                                                         <para>\r
450                                                                 <block subset="none" type="note"> A null reference can\r
451    be compared with any type; therefore, comparisons with a\r
452    null reference do not generate exceptions.</block>\r
453                                                         </para>\r
454                                                 </remarks>\r
455                                                 <example>\r
456                                                         <para>This example demonstrates the <see cref="M:System.Array.BinarySearch(System.Array,System.Object)"/> method.</para>\r
457                                                         <code lang="C#">using System;\r
458 class BinarySearchExample {\r
459   public static void Main() {    \r
460     int[] intAry = { 0, 2, 4, 6, 8 };\r
461     Console.WriteLine( "The indices and elements of the array are: ");\r
462     for ( int i = 0; i &lt; intAry.Length; i++ )\r
463       Console.Write("[{0}]: {1, -5}", i, intAry[i]);\r
464     Console.WriteLine();\r
465     SearchFor( intAry, 3 );\r
466     SearchFor( intAry, 6 );\r
467     SearchFor( intAry, 9 );\r
468   }\r
469   public static void SearchFor( Array ar, Object value ) {\r
470     int i = Array.BinarySearch( ar, 0, ar.Length, value, null );\r
471     Console.WriteLine();\r
472     if ( i &gt; 0 ) {\r
473       Console.Write( "The object searched for, {0}, was found ", value );\r
474       Console.WriteLine( "at index {1}.", value, i );\r
475     }\r
476     else if ( ~i == ar.Length ) {\r
477       Console.Write( "The object searched for, {0}, was ", value );\r
478       Console.Write( "not found,\nand no object in the array had " );\r
479       Console.WriteLine( "greater value. " );\r
480     }\r
481     else {\r
482       Console.Write( "The object searched for, {0}, was ", value );\r
483       Console.Write( "not found.\nThe next larger object is at " );\r
484       Console.WriteLine( "index {0}.", ~i );\r
485     }\r
486   }\r
487 }\r
488    </code>\r
489                                                         <para>The output is</para>\r
490                                                         <c>\r
491                                                                 <para>The indices and elements of the array are:</para>\r
492                                                                 <para> [0]:0 [1]:2 [2]:4 [3]:6 [4]:8</para>\r
493                                                                 <para>The object searched for, 3, was not found.</para>\r
494                                                                 <para>The next larger object is at index 2.</para>\r
495                                                                 <para>The object searched for, 6, was found at index 3.</para>\r
496                                                                 <para>The object searched for, 9, was not found,</para>\r
497                                                                 <para>and no object in the array had greater value.</para>\r
498                                                         </c>\r
499                                                 </example>\r
500                                         </Docs>\r
501                                         <Excluded>0</Excluded>\r
502                                 </Member>\r
503                                 <Member MemberName="BinarySearch">\r
504                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static int32 BinarySearch(class System.Array array, object value, class System.Collections.IComparer comparer)"/>\r
505                                         <MemberSignature Language="C#" Value="public static int BinarySearch(Array array, object value, IComparer comparer);"/>\r
506                                         <MemberType>Method</MemberType>\r
507                                         <ReturnValue>\r
508                                                 <ReturnType>System.Int32</ReturnType>\r
509                                         </ReturnValue>\r
510                                         <Parameters>\r
511                                                 <Parameter Name="array" Type="System.Array"/>\r
512                                                 <Parameter Name="value" Type="System.Object"/>\r
513                                                 <Parameter Name="comparer" Type="System.Collections.IComparer"/>\r
514                                         </Parameters>\r
515                                         <Docs>\r
516                                                 <summary>\r
517                                                         <para>Searches the specified one-dimensional <see cref="T:System.Array"/> for the specified\r
518    value, using the specified <see cref="T:System.Collections.IComparer"/>\r
519    implementation.</para>\r
520                                                 </summary>\r
521                                                 <param name="array">A <see cref="T:System.Array"/> to search.</param>\r
522                                                 <param name="value">A <see cref="T:System.Object"/> for which to search. </param>\r
523                                                 <param name="comparer">\r
524                                                         <para>The <see cref="T:System.Collections.IComparer"/> implementation to use when comparing elements. Specify a null reference to use the <see cref="T:System.IComparable"/> implementation of each element.</para>\r
525                                                 </param>\r
526                                                 <returns>\r
527                                                         <para>A <see cref="T:System.Int32"/> with one of the following values based on the result of the search\r
528    operation.</para>\r
529                                                         <list type="table">\r
530                                                                 <listheader>\r
531                                                                         <term>Return Value</term>\r
532                                                                         <description>Description</description>\r
533                                                                 </listheader>\r
534                                                                 <item>\r
535                                                                         <term> The index of <paramref name="value"/> in the\r
536       array.</term>\r
537                                                                         <description>\r
538                                                                                 <paramref name="value"/> was found.</description>\r
539                                                                 </item>\r
540                                                                 <item>\r
541                                                                         <term> The bitwise complement of the index of the first element that is larger than\r
542    <paramref name="value"/>.</term>\r
543                                                                         <description>\r
544                                                                                 <paramref name="value"/> was not found, and at least one array element was\r
545    greater than <paramref name="value"/>.</description>\r
546                                                                 </item>\r
547                                                                 <item>\r
548                                                                         <term> The bitwise complement of (<paramref name="array"/>.GetLowerBound(0) +\r
549 <paramref name="array"/>.Length).</term>\r
550                                                                         <description>\r
551                                                                                 <paramref name="value"/> was not found, and <paramref name="value"/> was greater than all\r
552 array elements.</description>\r
553                                                                 </item>\r
554                                                         </list>\r
555                                                         <para>\r
556                                                                 <block subset="none" type="note"> If <paramref name="value"/>\r
557 is not found, the caller can take the bitwise complement of the return value to\r
558 determine the index where value would be found in <paramref name="array"/> if it is\r
559 already sorted.</block>\r
560                                                         </para>\r
561                                                 </returns>\r
562                                                 <exception cref="T:System.ArgumentNullException">\r
563                                                         <paramref name="array"/> is <see langword="null"/>.</exception>\r
564                                                 <exception cref="T:System.RankException">\r
565                                                         <paramref name="array"/> has more than one dimension.</exception>\r
566                                                 <exception cref="T:System.InvalidOperationException">\r
567                                                         <para>\r
568                                                                 <paramref name="comparer"/> is <see langword="null"/>, and both <paramref name="value"/> and at least one element of <paramref name="array"/> do not implement the <see cref="T:System.IComparable"/>  interface.</para>\r
569                                                 </exception>\r
570                                                 <remarks>\r
571                                                         <para>This version of <see cref="M:System.Array.BinarySearch(System.Array,System.Object)"/> is equivalent to <see cref="M:System.Array.BinarySearch(System.Array,System.Object)"/>(<paramref name="array"/>, <paramref name="array"/>.GetLowerBound(0),\r
572 <paramref name="array"/>.Length, <paramref name="value"/>, <paramref name="comparer"/>).</para>\r
573                                                         <para>\r
574                                                                 <paramref name="value"/> is compared to each element of\r
575 <paramref name="array"/> using <paramref name="comparer"/> until an element with a value greater \r
576 than or equal to <paramref name="value"/> is found. If <paramref name="comparer"/> is <see langword="null"/>,\r
577 the <see cref="T:System.IComparable"/> interface of the element being compared - or of\r
578 <paramref name="value"/> if the element being compared does not implement the interface \r
579 - is used. If <paramref name="value"/> does not implement\r
580 the <see cref="T:System.IComparable"/>\r
581 interface and is compared to an element that does not implement\r
582 the <see cref="T:System.IComparable"/>\r
583 interface, a <see cref="T:System.InvalidOperationException"/> exception is thrown. If <paramref name="array"/> is\r
584 not already sorted, correct results are not guaranteed.</para>\r
585                                                         <para>\r
586                                                                 <block subset="none" type="note"> A null reference\r
587    can be compared with any type; therefore, comparisons\r
588    with a null reference do not generate exceptions.</block>\r
589                                                         </para>\r
590                                                 </remarks>\r
591                                         </Docs>\r
592                                         <Excluded>0</Excluded>\r
593                                 </Member>\r
594                                 <Member MemberName="BinarySearch">\r
595                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static int32 BinarySearch(class System.Array array, int32 index, int32 length, object value)"/>\r
596                                         <MemberSignature Language="C#" Value="public static int BinarySearch(Array array, int index, int length, object value);"/>\r
597                                         <MemberType>Method</MemberType>\r
598                                         <ReturnValue>\r
599                                                 <ReturnType>System.Int32</ReturnType>\r
600                                         </ReturnValue>\r
601                                         <Parameters>\r
602                                                 <Parameter Name="array" Type="System.Array"/>\r
603                                                 <Parameter Name="index" Type="System.Int32"/>\r
604                                                 <Parameter Name="length" Type="System.Int32"/>\r
605                                                 <Parameter Name="value" Type="System.Object"/>\r
606                                         </Parameters>\r
607                                         <Docs>\r
608                                                 <summary>\r
609                                                         <para>Searches the specified section of the specified\r
610       one-dimensional <see cref="T:System.Array"/> for the specified value.</para>\r
611                                                 </summary>\r
612                                                 <param name="array">A <see cref="T:System.Array"/> to search.</param>\r
613                                                 <param name="index">A <see cref="T:System.Int32"/> that contains the index at which searching starts.</param>\r
614                                                 <param name="length">A <see cref="T:System.Int32"/> that contains the number of elements to search, beginning with <paramref name="index"/> .</param>\r
615                                                 <param name="value">A <see cref="T:System.Object"/> for which to search. </param>\r
616                                                 <returns>\r
617                                                         <para>A <see cref="T:System.Int32"/> with one of the following values based on the result of the search\r
618    operation.</para>\r
619                                                         <list type="table">\r
620                                                                 <listheader>\r
621                                                                         <term>Return Value</term>\r
622                                                                         <description>Description</description>\r
623                                                                 </listheader>\r
624                                                                 <item>\r
625                                                                         <term> The index of <paramref name="value"/> in the\r
626       array.</term>\r
627                                                                         <description>\r
628                                                                                 <paramref name="value"/> was found.</description>\r
629                                                                 </item>\r
630                                                                 <item>\r
631                                                                         <term> The bitwise complement of the index of the first element that is larger than\r
632    <paramref name="value"/>.</term>\r
633                                                                         <description>\r
634                                                                                 <paramref name="value"/> was not found, and at least one array element in the\r
635    range of <paramref name="index"/> to <paramref name="index"/> + <paramref name="length"/> - 1 was greater\r
636    than <paramref name="value"/>.</description>\r
637                                                                 </item>\r
638                                                                 <item>\r
639                                                                         <term> The bitwise complement of (<paramref name="index"/> + <paramref name="length"/>).</term>\r
640                                                                         <description>\r
641                                                                                 <paramref name="value"/> was not found, and <paramref name="value"/> was greater than all\r
642 array elements in the range of <paramref name="index"/> to <paramref name="index"/> +\r
643 <paramref name="length"/>- 1.</description>\r
644                                                                 </item>\r
645                                                         </list>\r
646                                                         <para>\r
647                                                                 <block subset="none" type="note"> If <paramref name="value"/>\r
648 is not found, the caller can take the bitwise complement of the return value to\r
649 determine the index of the array where <paramref name="value"/> would be found in the\r
650 range of <paramref name="index"/> to <paramref name="index"/> + <paramref name=" length"/> - 1 if <paramref name="array"/>\r
651 is already sorted.</block>\r
652                                                         </para>\r
653                                                 </returns>\r
654                                                 <exception cref="T:System.ArgumentNullException">\r
655                                                         <paramref name="array"/> is <see langword="null"/> .</exception>\r
656                                                 <exception cref="T:System.RankException">\r
657                                                         <paramref name="array"/> has more than one dimension.</exception>\r
658                                                 <exception cref="T:System.ArgumentOutOfRangeException">\r
659                                                         <para>\r
660                                                                 <paramref name="index"/> &lt; <paramref name="array"/>.GetLowerBound(0).</para>\r
661                                                         <para>-or-</para>\r
662                                                         <para>\r
663                                                                 <paramref name="length"/> &lt; 0.</para>\r
664                                                 </exception>\r
665                                                 <exception cref="T:System.ArgumentException">\r
666                                                         <para>\r
667                                                                 <paramref name="index"/> and <paramref name="length"/> do not specify a valid range in <paramref name="array"/> (i.e. <paramref name="index"/> + <paramref name="length"/> &gt; <paramref name="array"/>.GetLowerBound(0) + <paramref name="array"/>.Length).</para>\r
668                                                         <para> -or-</para>\r
669                                                         <para>\r
670                                                                 <paramref name="array"/>.UpperBound == <see cref="F:System.Int32.MaxValue"/>.</para>\r
671                                                 </exception>\r
672                                                 <exception cref="T:System.InvalidOperationException">\r
673                                                         <para>Either <paramref name="value"/> or at least one element of <paramref name="array"/> does not implement the <see cref="T:System.IComparable"/> interface.</para>\r
674                                                 </exception>\r
675                                                 <remarks>\r
676                                                         <para>This version of <see cref="M:System.Array.BinarySearch(System.Array,System.Object)"/> is equivalent to <see cref="M:System.Array.BinarySearch(System.Array,System.Object)"/>(<paramref name="array"/>, <paramref name="array"/>.GetLowerBound(0),\r
677 <paramref name="array"/>.Length, <paramref name="value"/>, \r
678 <see langword="null"/>). </para>\r
679                                                         <para>\r
680                                                                 <paramref name="value"/> is compared to each element of <paramref name="array"/> using\r
681 the <see cref="T:System.IComparable"/> interface of the element being compared - or of\r
682 <paramref name="value"/> if the element being compared does not implement the interface - \r
683 until an element with a value greater than or equal to <paramref name="value"/> is found.\r
684 If <paramref name="value"/> does not implement the <see cref="T:System.IComparable"/> interface and is compared to an element\r
685 that does not implement the <see cref="T:System.IComparable"/> interface, a <see cref="T:System.InvalidOperationException"/>\r
686 exception is thrown. If <paramref name="array"/> is not already sorted, correct results\r
687 are not guaranteed. </para>\r
688                                                         <para>\r
689                                                                 <block subset="none" type="note"> A null reference can be compared with\r
690    any type; therefore, comparisons with a null reference do not generate\r
691    exceptions.</block>\r
692                                                         </para>\r
693                                                 </remarks>\r
694                                         </Docs>\r
695                                         <Excluded>0</Excluded>\r
696                                 </Member>\r
697                                 <Member MemberName="BinarySearch">\r
698                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static int32 BinarySearch(class System.Array array, object value)"/>\r
699                                         <MemberSignature Language="C#" Value="public static int BinarySearch(Array array, object value);"/>\r
700                                         <MemberType>Method</MemberType>\r
701                                         <ReturnValue>\r
702                                                 <ReturnType>System.Int32</ReturnType>\r
703                                         </ReturnValue>\r
704                                         <Parameters>\r
705                                                 <Parameter Name="array" Type="System.Array"/>\r
706                                                 <Parameter Name="value" Type="System.Object"/>\r
707                                         </Parameters>\r
708                                         <Docs>\r
709                                                 <summary>\r
710                                                         <para>Searches the specified one-dimensional <see cref="T:System.Array"/> for the specified object.</para>\r
711                                                 </summary>\r
712                                                 <param name="array">A <see cref="T:System.Array"/> to search for an object.</param>\r
713                                                 <param name="value">A <see cref="T:System.Object"/> for which to search. </param>\r
714                                                 <returns>\r
715                                                         <para>A <see cref="T:System.Int32"/> with one of the following values based on the result of the search\r
716    operation.</para>\r
717                                                         <list type="table">\r
718                                                                 <listheader>\r
719                                                                         <term>Return Value</term>\r
720                                                                         <description> Description</description>\r
721                                                                 </listheader>\r
722                                                                 <item>\r
723                                                                         <term> The index of <paramref name="value"/> in the\r
724       array.</term>\r
725                                                                         <description>\r
726                                                                                 <paramref name="value"/> was found.</description>\r
727                                                                 </item>\r
728                                                                 <item>\r
729                                                                         <term> The bitwise complement of the index of the first element that is larger than\r
730    <paramref name="value"/>.</term>\r
731                                                                         <description>\r
732                                                                                 <paramref name="value"/> was not found and the value of at least one element of\r
733 <paramref name="array"/> was greater than <paramref name="value"/>.</description>\r
734                                                                 </item>\r
735                                                                 <item>\r
736                                                                         <term> The bitwise complement of (<paramref name="array"/>.GetLowerBound(0) +\r
737 <paramref name="array"/>.Length).</term>\r
738                                                                         <description>\r
739                                                                                 <paramref name="value"/> was not found, and <paramref name="value"/> was greater than the\r
740 value of all array elements.</description>\r
741                                                                 </item>\r
742                                                         </list>\r
743                                                         <para>\r
744                                                                 <block subset="none" type="note"> If <paramref name="value"/>\r
745 is not found, the caller can take the bitwise complement of the return value to\r
746 determine the index where value would be found in <paramref name="array"/> if it is sorted\r
747 already.</block>\r
748                                                         </para>\r
749                                                 </returns>\r
750                                                 <exception cref="T:System.ArgumentNullException">\r
751                                                         <paramref name="array"/> is <see langword="null"/>.</exception>\r
752                                                 <exception cref="T:System.RankException">\r
753                                                         <para>\r
754                                                                 <paramref name="array"/> has more than one dimension.</para>\r
755                                                 </exception>\r
756                                                 <exception cref="T:System.InvalidOperationException">\r
757                                                         <para>Both <paramref name="value"/> and at least one element of <paramref name="array"/> do not implement the <see cref="T:System.IComparable"/> interface. </para>\r
758                                                 </exception>\r
759                                                 <remarks>\r
760                                                         <para>This version of <see cref="M:System.Array.BinarySearch(System.Array,System.Object)"/> is equivalent to <see cref="M:System.Array.BinarySearch(System.Array,System.Object)"/>(<paramref name="array"/>, <paramref name="array"/>.GetLowerBound(0),\r
761 <paramref name="array"/>.Length, <paramref name="value"/>, \r
762 <see langword="null"/>).</para>\r
763                                                         <para>\r
764                                                                 <paramref name="value"/> is compared to each element of\r
765 <paramref name="array"/> using the <see cref="T:System.IComparable"/> interface of the element being \r
766 compared - or of <paramref name="value"/> if the element being compared does not implement the\r
767 interface - until an element with a value greater than or equal to\r
768 <paramref name="value"/> is found. If <paramref name="value"/> does not implement the <see cref="T:System.IComparable"/> interface \r
769 and is compared to an element that does not implement the <see cref="T:System.IComparable"/> interface,\r
770 a <see cref="T:System.InvalidOperationException"/> exception is thrown. If <paramref name="array"/>\r
771 is not already sorted, correct results are not guaranteed.</para>\r
772                                                         <para>\r
773                                                                 <block subset="none" type="note"> A null reference\r
774    can be compared with any type; therefore,\r
775    comparisons with a null reference do not generate exceptions.</block>\r
776                                                         </para>\r
777                                                 </remarks>\r
778                                         </Docs>\r
779                                         <Excluded>0</Excluded>\r
780                                 </Member>\r
781                                 <Member MemberName="BinarySearch&lt;T&gt;">\r
782                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static int32 BinarySearch&lt;T&gt;(!!0[] array, !!0 value)"/>\r
783                                         <MemberSignature Language="C#" Value="public static int BinarySearch&lt;T&gt;(T[] array, T value)"/>\r
784                                         <MemberType>Method</MemberType>\r
785                                         <ReturnValue>\r
786                                                 <ReturnType>System.Int32</ReturnType>\r
787                                         </ReturnValue>\r
788                                         <Parameters>\r
789                                                 <Parameter Name="array" Type="T[]"/>\r
790                                                 <Parameter Name="value" Type="T"/>\r
791                                         </Parameters>\r
792                                         <Docs>\r
793                                                 <summary>\r
794                                                         <para>Searches an entire one-dimensional sorted array for a specific element, using the <see cref="T:System.IComparable&lt;T&gt;"/> or <see cref="T:System.IComparable"/> interface implemented by each element of the array and by the specified object.</para>\r
795                                                 </summary>\r
796                                                 <param name="array">The one-dimensional array to search.</param>\r
797                                                 <param name="value">The object for which to search.</param>\r
798                                                 <returns>\r
799                                                         <para>One of the following values based on the result of the search operation:</para>\r
800                                                         <list type="table">\r
801                                                                 <listheader>\r
802                                                                         <term>Return Value</term>\r
803                                                                         <description>Description</description>\r
804                                                                 </listheader>\r
805                                                                 <item>\r
806                                                                         <term>A non-negative index of <paramref name="value"/> in the array.</term>\r
807                                                                         <description>\r
808                                                                                 <paramref name="value"/> was found.</description>\r
809                                                                 </item>\r
810                                                                 <item>\r
811                                                                         <term>A negative value, which is the bitwise complement of the index of the first element that is larger than   <paramref name="value"/>.</term>\r
812                                                                         <description>\r
813                                                                                 <paramref name="value"/> was not found and the value of at least one element of array was greater than <paramref name="value"/>.</description>\r
814                                                                 </item>\r
815                                                                 <item>\r
816                                                                         <term>A negative value, which is the bitwise complement of one more than the index of the final element.</term>\r
817                                                                         <description>\r
818                                                                                 <paramref name="value"/> was not found, and  <paramref name="value"/> was greater than the value of all array elements.</description>\r
819                                                                 </item>\r
820                                                         </list>\r
821                                                 </returns>\r
822                                                 <exception cref="T:System.ArgumentNullException">\r
823                                                         <paramref name="array"/> is <see langword="null"/> .</exception>\r
824                                                 <exception cref="T:System.InvalidOperationException">\r
825                                                         <para>Neither <paramref name="value"/> nor the elements of the array implement the <see cref="T:System.IComparable&lt;T&gt;"/> or <see cref="T:System.IComparable"/> interfaces.</para>\r
826                                                 </exception>\r
827                                                 <remarks>\r
828                                                         <para>Either <paramref name="value"/> or every element of <paramref name="array"/>  must implement the <see cref="T:System.IComparable&lt;T&gt;"/> or <see cref="T:System.IComparable"/>  interface, which is used for comparisons. The elements of <paramref name="array"/> must already be sorted in increasing value according to the sort order defined by the <see cref="T:System.IComparable&lt;T&gt;"/> or <see cref="T:System.IComparable"/> implementation; otherwise, the  behavior is unspecified</para>\r
829                                                         <para>Duplicate elements are allowed. If the array contains more than one element equal to <paramref name="value"/>, the method returns the index of only one of the occurrences, but not necessarily the first one.</para>\r
830                                                         <para>\r
831                                                                 <block subset="none" type="note">\r
832                                                                         <see langword="null"/> can always be compared with any other reference type; therefore, comparisons with <see langword="null"/> do not generate an exception.</block>\r
833                                                         </para>\r
834                                                 </remarks>\r
835                                         </Docs>\r
836                                         <Excluded>0</Excluded>\r
837                                 </Member>\r
838                                 <Member MemberName="BinarySearch&lt;T&gt;">\r
839                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static int32 BinarySearch&lt;T&gt;(!!0[] array, !!0 value, class System.Collections.Generic.IComparer`1&lt;!!0&gt; comparer)"/>\r
840                                         <MemberSignature Language="C#" Value="public static int BinarySearch&lt;T&gt;(T[] array, T value, IComparer&lt;T&gt; comparer)"/>\r
841                                         <MemberType>Method</MemberType>\r
842                                         <ReturnValue>\r
843                                                 <ReturnType>System.Int32</ReturnType>\r
844                                         </ReturnValue>\r
845                                         <Parameters>\r
846                                                 <Parameter Name="array" Type="T[]"/>\r
847                                                 <Parameter Name="value" Type="T"/>\r
848                                                 <Parameter Name="comparer" Type="System.Collections.Generic.IComparer&lt;T&gt;"/>\r
849                                         </Parameters>\r
850                                         <Docs>\r
851                                                 <summary>\r
852                                                         <para>Searches an entire one-dimensional sorted array for a value using the specified <see cref="T:System.Collections.Generic.IComparer&lt;T&gt;"/> interface.</para>\r
853                                                 </summary>\r
854                                                 <param name="array">The one-dimensional array to search.</param>\r
855                                                 <param name="value">The object for which to search.</param>\r
856                                                 <param name="comparer">\r
857                                                         <para>The implementation to use when comparing elements.</para>\r
858                                                         <para>-or-</para>\r
859                                                         <para>\r
860                                                                 <see langword="null"/> to use the <see cref="T:System.IComparable&lt;T&gt;"/> or <see cref="T:System.IComparable"/> implementation of each element.</para>\r
861                                                 </param>\r
862                                                 <returns>\r
863                                                         <para>One of the following values based on the result of the search operation:</para>\r
864                                                         <list type="table">\r
865                                                                 <listheader>\r
866                                                                         <term>Return Value</term>\r
867                                                                         <description>Description</description>\r
868                                                                 </listheader>\r
869                                                                 <item>\r
870                                                                         <term>A non-negative index of <paramref name="value"/> in the array.</term>\r
871                                                                         <description>\r
872                                                                                 <paramref name="value"/> was found.</description>\r
873                                                                 </item>\r
874                                                                 <item>\r
875                                                                         <term>A negative value, which is the bitwise complement of the index of the first element that is larger than   <paramref name="value"/>.</term>\r
876                                                                         <description>\r
877                                                                                 <paramref name="value"/> was not found and the value of at least one element of array was greater than <paramref name="value"/>.</description>\r
878                                                                 </item>\r
879                                                                 <item>\r
880                                                                         <term>A negative value, which is the bitwise complement of one more than the index of the final element.</term>\r
881                                                                         <description>\r
882                                                                                 <paramref name="value"/> was not found, and  <paramref name="value"/> was greater than the value of all array elements.</description>\r
883                                                                 </item>\r
884                                                         </list>\r
885                                                 </returns>\r
886                                                 <exception cref="T:System.ArgumentNullException">\r
887                                                         <paramref name="array"/> is <see langword="null"/> .</exception>\r
888                                                 <exception cref="T:System.InvalidOperationException">\r
889                                                         <para>\r
890                                                                 <paramref name="comparer"/> is <see langword="null"/>, and neither <paramref name="value"/> nor the elements of the array implement the <see cref="T:System.IComparable&lt;T&gt;"/> or <see cref="T:System.IComparable"/> interface.</para>\r
891                                                 </exception>\r
892                                                 <remarks>\r
893                                                         <para>The comparer customizes how the elements are compared.</para>\r
894                                                         <para>The elements of <paramref name="array"/> must already be sorted in increasing value according to the sort order defined by <paramref name="comparer"/>; otherwise, the behavior is unspecified</para>\r
895                                                         <para>If <paramref name="comparer"/> is not <see langword="null"/>, the elements of <paramref name="array"/> are compared to the specified value using the specified  <see cref="T:System.Collections.Generic.IComparer"/> implementation. </para>\r
896                                                         <para>If <paramref name="comparer"/> is <see langword="null"/>, the default comparer is used.</para>\r
897                                                         <para>Duplicate elements are allowed. If the array contains more than one element equal to <paramref name="value"/>, the method returns the index of only one of the occurrences, but not necessarily the first one.</para>\r
898                                                         <para>\r
899                                                                 <block subset="none" type="note">\r
900                                                                         <see langword="null"/> can always be compared with any other reference type; therefore, comparisons with <see langword="null"/> do not generate an exception.</block>\r
901                                                         </para>\r
902                                                 </remarks>\r
903                                         </Docs>\r
904                                         <Excluded>0</Excluded>\r
905                                 </Member>\r
906                                 <Member MemberName="BinarySearch&lt;T&gt;">\r
907                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static int32 BinarySearch&lt;T&gt;(!!0 array, int32 index, int32 length, !!0 value)"/>\r
908                                         <MemberSignature Language="C#" Value="public static int BinarySearch&lt;T&gt;(T[] array, int index, int length, T value)"/>\r
909                                         <MemberType>Method</MemberType>\r
910                                         <ReturnValue>\r
911                                                 <ReturnType>System.Int32</ReturnType>\r
912                                         </ReturnValue>\r
913                                         <Parameters>\r
914                                                 <Parameter Name="array" Type="T[]"/>\r
915                                                 <Parameter Name="index" Type="System.Int32"/>\r
916                                                 <Parameter Name="length" Type="System.Int32"/>\r
917                                                 <Parameter Name="value" Type="T"/>\r
918                                         </Parameters>\r
919                                         <Docs>\r
920                                                 <summary>\r
921                                                         <para>Searches a range of elements in a one-dimensional sorted array for a value, using the <see cref="T:System.IComparable"/> interface implemented by each element of the array and by the specified value.</para>\r
922                                                 </summary>\r
923                                                 <param name="array">The one-dimensional array to search.</param>\r
924                                                 <param name="index">The starting index of the range to search.</param>\r
925                                                 <param name="length">The length of the range to search.</param>\r
926                                                 <param name="value">The object for which to search.</param>\r
927                                                 <returns>\r
928                                                         <para>One of the following values based on the result of the search operation:</para>\r
929                                                         <list type="table">\r
930                                                                 <listheader>\r
931                                                                         <term>Return Value</term>\r
932                                                                         <description>Description</description>\r
933                                                                 </listheader>\r
934                                                                 <item>\r
935                                                                         <term>A non-negative index of <paramref name="value"/> in the array.</term>\r
936                                                                         <description>\r
937                                                                                 <paramref name="value"/> was found.</description>\r
938                                                                 </item>\r
939                                                                 <item>\r
940                                                                         <term>A negative value, which is the bitwise complement of the index of the first element that is larger than   <paramref name="value"/>.</term>\r
941                                                                         <description>\r
942                                                                                 <paramref name="value"/> was not found and the value of at least one element of array was greater than <paramref name="value"/>.</description>\r
943                                                                 </item>\r
944                                                                 <item>\r
945                                                                         <term>A negative value, which is the bitwise complement of one more than the index of the final element.</term>\r
946                                                                         <description>\r
947                                                                                 <paramref name="value"/> was not found, and  <paramref name="value"/> was greater than the value of all array elements.</description>\r
948                                                                 </item>\r
949                                                         </list>\r
950                                                 </returns>\r
951                                                 <exception cref="T:System.ArgumentException">\r
952                                                         <para>\r
953                                                                 <paramref name="index"/> + <paramref name="length"/> is greater than <paramref name="array"/>\r
954                                                                 <see langword=".Length"/>.</para>\r
955                                                 </exception>\r
956                                                 <exception cref="T:System.ArgumentNullException">\r
957                                                         <paramref name="array"/> is <see langword="null"/> .</exception>\r
958                                                 <exception cref="T:System.ArgumentOutOfRangeException">\r
959                                                         <para>\r
960                                                                 <paramref name="index"/> is less than zero</para>\r
961                                                         <para>-or-</para>\r
962                                                         <para>\r
963                                                                 <paramref name="length"/> is less than zero.</para>\r
964                                                 </exception>\r
965                                                 <exception cref="T:System.InvalidOperationException">\r
966                                                         <para>Neither <paramref name="value"/> nor the elements of the array implement the <see cref="T:System.IComparable&lt;T&gt;"/> or <see cref="T:System.IComparable"/> interface.</para>\r
967                                                 </exception>\r
968                                                 <remarks>\r
969                                                         <para>Either <paramref name="value"/> or every element of <paramref name="array"/>  must implement the <see cref="T:System.IComparable"/>  interface, which is used for comparisons. The elements of <paramref name="array"/> must already be sorted in increasing value according to the sort order defined by the <see cref="T:System.IComparable&lt;T&gt;"/> or <see cref="T:System.IComparable"/> implementation; otherwise, the behavior is unspecified</para>\r
970                                                         <para>Duplicate elements are allowed. If the array contains more than one element equal to <paramref name="value"/>, the method returns the index of only one of the occurrences, but not necessarily the first one.</para>\r
971                                                         <para>\r
972                                                                 <block subset="none" type="note">\r
973                                                                         <see langword="null"/> can always be compared with any other reference type; therefore, comparisons with <see langword="null"/> do not generate an exception.</block>\r
974                                                         </para>\r
975                                                 </remarks>\r
976                                         </Docs>\r
977                                         <Excluded>0</Excluded>\r
978                                 </Member>\r
979                                 <Member MemberName="BinarySearch&lt;T&gt;">\r
980                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static int32 BinarySearch&lt;T&gt;(!!0[] array, int32 index, int32 length, !!0 value, class System.Collections.Generic.IComparer`1&lt;!!0&gt; comparer)"/>\r
981                                         <MemberSignature Language="C#" Value="public static int BinarySearch&lt;T&gt;(T[] array, int index, int length, T value, IComparer&lt;T&gt; comparer)"/>\r
982                                         <MemberType>Method</MemberType>\r
983                                         <ReturnValue>\r
984                                                 <ReturnType>System.Int32</ReturnType>\r
985                                         </ReturnValue>\r
986                                         <Parameters>\r
987                                                 <Parameter Name="array" Type="T[]"/>\r
988                                                 <Parameter Name="index" Type="System.Int32"/>\r
989                                                 <Parameter Name="length" Type="System.Int32"/>\r
990                                                 <Parameter Name="value" Type="T"/>\r
991                                                 <Parameter Name="comparer" Type="System.Collections.Generic.IComparer&lt;T&gt;"/>\r
992                                         </Parameters>\r
993                                         <Docs>\r
994                                                 <summary>\r
995                                                         <para>Searches a range of elements in a one-dimensional sorted array for a value, using the specified <see cref="T:System.Collections.Generic.IComparer&lt;T&gt;"/> interface.</para>\r
996                                                 </summary>\r
997                                                 <param name="array">The one-dimensional array to search.</param>\r
998                                                 <param name="index">The starting index of the range to search.</param>\r
999                                                 <param name="length">The length of the range to search.</param>\r
1000                                                 <param name="value">The object for which to search.</param>\r
1001                                                 <param name="comparer">\r
1002                                                         <para>The implementation to use when comparing elements.</para>\r
1003                                                         <para>-or-</para>\r
1004                                                         <para>\r
1005                                                                 <see langword="null"/> to use the <see cref="T:System.IComparable&lt;T&gt;"/> or <see cref="T:System.IComparable"/> implementation of each element.</para>\r
1006                                                 </param>\r
1007                                                 <returns>\r
1008                                                         <para>One of the following values based on the result of the search operation:</para>\r
1009                                                         <list type="table">\r
1010                                                                 <listheader>\r
1011                                                                         <term>Return Value</term>\r
1012                                                                         <description>Description</description>\r
1013                                                                 </listheader>\r
1014                                                                 <item>\r
1015                                                                         <term>A non-negative index of <paramref name="value"/> in the array.</term>\r
1016                                                                         <description>\r
1017                                                                                 <paramref name="value"/> was found.</description>\r
1018                                                                 </item>\r
1019                                                                 <item>\r
1020                                                                         <term>A negative value, which is the bitwise complement of the index of the first element that is larger than   <paramref name="value"/>.</term>\r
1021                                                                         <description>\r
1022                                                                                 <paramref name="value"/> was not found and the value of at least one element of array was greater than <paramref name="value"/>.</description>\r
1023                                                                 </item>\r
1024                                                                 <item>\r
1025                                                                         <term>A negative value, which is the bitwise complement of one more than the index of the final element.</term>\r
1026                                                                         <description>\r
1027                                                                                 <paramref name="value"/> was not found, and  <paramref name="value"/> was greater than the value of all array elements.</description>\r
1028                                                                 </item>\r
1029                                                         </list>\r
1030                                                 </returns>\r
1031                                                 <exception cref="T:System.ArgumentException">\r
1032                                                         <para>\r
1033                                                                 <paramref name="index"/> and <paramref name="length"/> do not specify a valid range in array.</para>\r
1034                                                 </exception>\r
1035                                                 <exception cref="T:System.ArgumentNullException">\r
1036                                                         <paramref name="array"/> is <see langword="null"/> .</exception>\r
1037                                                 <exception cref="T:System.ArgumentOutOfRangeException">\r
1038                                                         <para>\r
1039                                                                 <paramref name="index"/> is less than zero</para>\r
1040                                                         <para>-or-</para>\r
1041                                                         <para>\r
1042                                                                 <paramref name="length"/> is less than zero.</para>\r
1043                                                 </exception>\r
1044                                                 <exception cref="T:System.InvalidOperationException">\r
1045                                                         <para>\r
1046                                                                 <paramref name="comparer"/> is <see langword="null"/>, and neither <paramref name="value"/> nor the elements of the array implement the <see cref="T:System.IComparable&lt;T&gt;"/> or <see cref="T:System.IComparable"/> interface.</para>\r
1047                                                 </exception>\r
1048                                                 <remarks>\r
1049                                                         <para>The comparer customizes how the elements are compared.</para>\r
1050                                                         <para>The elements of <paramref name="array"/> must already be sorted in increasing value according to the sort order defined by <paramref name="comparer"/>; otherwise, the behavior is unspecified.</para>\r
1051                                                         <para>If <paramref name="comparer"/> is not <see langword="null"/>, the elements of <paramref name="array"/> are compared to the specified value using the specified  <see cref="T:System.Collections.Generic.IComparer&lt;T&gt;"/> implementation. </para>\r
1052                                                         <para>If <paramref name="comparer"/> is <see langword="null"/>, the comparison is done using the <see cref="T:System.IComparable&lt;T&gt;"/> or <see cref="T:System.IComparable "/> implementation provided by the element itself or by the specified value.</para>\r
1053                                                         <para>Duplicate elements are allowed. If the array contains more than one element equal to <paramref name="value"/>, the method returns the index of only one of the occurrences, but not necessarily the first one.</para>\r
1054                                                         <para>\r
1055                                                                 <block subset="none" type="note">\r
1056                                                                         <see langword="null"/> can always be compared with any other reference type; therefore, comparisons with <see langword="null"/> do not generate an exception.</block>\r
1057                                                         </para>\r
1058                                                 </remarks>\r
1059                                         </Docs>\r
1060                                         <Excluded>0</Excluded>\r
1061                                 </Member>\r
1062                                 <Member MemberName="Clear">\r
1063                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static void Clear(class System.Array array, int32 index, int32 length)"/>\r
1064                                         <MemberSignature Language="C#" Value="public static void Clear(Array array, int index, int length);"/>\r
1065                                         <MemberType>Method</MemberType>\r
1066                                         <ReturnValue>\r
1067                                                 <ReturnType>System.Void</ReturnType>\r
1068                                         </ReturnValue>\r
1069                                         <Parameters>\r
1070                                                 <Parameter Name="array" Type="System.Array"/>\r
1071                                                 <Parameter Name="index" Type="System.Int32"/>\r
1072                                                 <Parameter Name="length" Type="System.Int32"/>\r
1073                                         </Parameters>\r
1074                                         <Docs>\r
1075                                                 <summary>\r
1076                                                         <para>Sets the specified range of elements in the\r
1077       specified <see cref="T:System.Array"/> to zero, false, or to a null reference, depending on the\r
1078       element type.</para>\r
1079                                                 </summary>\r
1080                                                 <param name="array">The <see cref="T:System.Array"/> to clear.</param>\r
1081                                                 <param name="index">A <see cref="T:System.Int32"/> that contains the index at which clearing starts.</param>\r
1082                                                 <param name="length">A <see cref="T:System.Int32"/> that contains the number of elements to clear, beginning with <paramref name="index"/>.</param>\r
1083                                                 <exception cref="T:System.ArgumentNullException">\r
1084                                                         <paramref name="array"/> is <see langword="null"/>.</exception>\r
1085                                                 <exception cref="T:System.ArgumentOutOfRangeException">\r
1086                                                         <para>\r
1087                                                                 <paramref name="index"/> &lt; <paramref name="array"/>.GetLowerBound(0).</para>\r
1088                                                         <para>\r
1089                                                                 <paramref name="length"/> &lt; 0.</para>\r
1090                                                         <para>\r
1091                                                                 <paramref name="index"/> and <paramref name="length"/> do not specify a valid range in <paramref name="array"/> (i.e. <paramref name="index"/> + <paramref name="length"/> &gt; <paramref name="array"/>.GetLowerBound(0) + <paramref name="array"/>.Length ).</para>\r
1092                                                 </exception>\r
1093                                                 <remarks>\r
1094                                                         <para>Reference-type elements will be set to\r
1095    <see langword="null"/>. Value-type elements will be set to zero, \r
1096       except for <see cref="T:System.Boolean"/>\r
1097       elements, which will be set to\r
1098    <see langword="false"/>.</para>\r
1099                                                 </remarks>\r
1100                                         </Docs>\r
1101                                         <Excluded>0</Excluded>\r
1102                                 </Member>\r
1103                                 <Member MemberName="Clone">\r
1104                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig virtual object Clone()"/>\r
1105                                         <MemberSignature Language="C#" Value="public virtual object Clone();"/>\r
1106                                         <MemberType>Method</MemberType>\r
1107                                         <ReturnValue>\r
1108                                                 <ReturnType>System.Object</ReturnType>\r
1109                                         </ReturnValue>\r
1110                                         <Parameters/>\r
1111                                         <Docs>\r
1112                                                 <summary>\r
1113                                                         <para>Returns a <see cref="T:System.Object"/> that is a copy of the current instance.</para>\r
1114                                                 </summary>\r
1115                                                 <returns>\r
1116                                                         <para>A <see cref="T:System.Object"/> that is a copy of\r
1117    the current instance.</para>\r
1118                                                 </returns>\r
1119                                                 <remarks>\r
1120                                                         <para>\r
1121                                                                 <block subset="none" type="note"> This method is implemented to support\r
1122       the <see cref="T:System.ICloneable"/>\r
1123       interface.</block>\r
1124                                                         </para>\r
1125                                                         <para>\r
1126                                                                 <block subset="none" type="behaviors">Each of the\r
1127       elements of the current instance is copied to the clone. If the elements are\r
1128       reference types, the references are copied. If the elements are value-types, the\r
1129       values are copied. The clone is of the same type as the current\r
1130       instance.</block>\r
1131                                                         </para>\r
1132                                                         <para>\r
1133                                                                 <block subset="none" type="default">As described above.</block>\r
1134                                                         </para>\r
1135                                                         <para>\r
1136                                                                 <block subset="none" type="overrides">Override this method to return a\r
1137       clone of an array.</block>\r
1138                                                         </para>\r
1139                                                         <para>\r
1140                                                                 <block subset="none" type="usage">Use this method to obtain the clone of\r
1141       an array.</block>\r
1142                                                         </para>\r
1143                                                 </remarks>\r
1144                                                 <example>\r
1145                                                         <para>This example demonstrates the <see cref="M:System.Array.Clone"/> method.</para>\r
1146                                                         <code lang="C#">using System;\r
1147 public class ArrayCloneExample {\r
1148   public static void Main() {\r
1149     int[] intAryOrig = { 3, 4, 5 };\r
1150     //must explicitly convert clones object into an array\r
1151     int[] intAryClone = (int[]) intAryOrig.Clone();\r
1152     Console.Write( "The elements of the first  array are: " );\r
1153     foreach( int i in intAryOrig )\r
1154       Console.Write( "{0,3}", i );\r
1155     Console.WriteLine();\r
1156     Console.Write( "The elements of the cloned array are: " );\r
1157     foreach( int i in intAryClone )\r
1158       Console.Write( "{0,3}", i );\r
1159     Console.WriteLine();\r
1160     //Clear the values of the original array.\r
1161     Array.Clear( intAryOrig, 0, 3 );\r
1162     Console.WriteLine( "After clearing the first array," );\r
1163     Console.Write( "The elements of the first  array are: " );\r
1164     foreach( int i in intAryOrig )\r
1165       Console.Write( "{0,3}", i );\r
1166     Console.WriteLine();\r
1167     Console.Write( "The elements of the cloned array are: " );\r
1168     foreach( int i in intAryClone )\r
1169       Console.Write( "{0,3}", i );\r
1170   }\r
1171 }\r
1172    </code>\r
1173                                                         <para>The output is</para>\r
1174                                                         <c>\r
1175                                                                 <para>The elements of the first array are: 3 4 5</para>\r
1176                                                                 <para>The elements of the cloned array are: 3 4 5</para>\r
1177                                                                 <para>After clearing the first array,</para>\r
1178                                                                 <para>The elements of the first array are: 0 0 0</para>\r
1179                                                                 <para>The elements of the cloned array are: 3 4 5</para>\r
1180                                                         </c>\r
1181                                                 </example>\r
1182                                         </Docs>\r
1183                                         <Excluded>0</Excluded>\r
1184                                 </Member>\r
1185                                 <Member MemberName="ConvertAll&lt;T,U&gt;">\r
1186                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static !!1[] ConvertAll&lt;T,U&gt;(!!0[] array, class System.Converter`1&lt;!!0,!!1&gt; converter)"/>\r
1187                                         <MemberSignature Language="C#" Value="public static U[] ConvertAll&lt;T,U&gt;(T[] array, Converter&lt;T,U&gt; converter)"/>\r
1188                                         <MemberType>Method</MemberType>\r
1189                                         <ReturnValue>\r
1190                                                 <ReturnType>U[]</ReturnType>\r
1191                                         </ReturnValue>\r
1192                                         <Parameters>\r
1193                                                 <Parameter Name="array" Type="T[]"/>\r
1194                                                 <Parameter Name="converter" Type="System.Converter&lt;T,U&gt;"/>\r
1195                                         </Parameters>\r
1196                                         <Docs>\r
1197                                                 <summary>\r
1198                                                         <para>Converts an array of one type to an array of another type.</para>\r
1199                                                 </summary>\r
1200                                                 <param name="array">The one-dimensional array to convert.</param>\r
1201                                                 <param name="converter">\r
1202                                                         <para>A <see cref="T:System.Converter&lt;T,U&gt;"/> that converts each element from one type to another type.</para>\r
1203                                                 </param>\r
1204                                                 <returns>\r
1205                                                         <para>A new array of the target type containing the converted elements from <paramref name="array"/>.</para>\r
1206                                                 </returns>\r
1207                                                 <exception cref="T:System.ArgumentNullException">\r
1208                                                         <paramref name="array"/> is <see langword="null"/> or <paramref name="converter"/> is <see langword="null"/>.</exception>\r
1209                                                 <remarks>\r
1210                                                         <para>The <see cref="T:System.Converter&lt;T,U&gt;"/> is a delegate that converts an array element to the target type.  The elements of  <paramref name="array"/> are individually passed to this converter, and the converted elements are saved in the new array. The source array remains unchanged.</para>\r
1211                                                 </remarks>\r
1212                                         </Docs>\r
1213                                         <Excluded>0</Excluded>\r
1214                                 </Member>\r
1215                                 <Member MemberName="Copy">\r
1216                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static void Copy(class System.Array sourceArray, class System.Array destinationArray, int32 length)"/>\r
1217                                         <MemberSignature Language="C#" Value="public static void Copy(Array sourceArray, Array destinationArray, int length);"/>\r
1218                                         <MemberType>Method</MemberType>\r
1219                                         <ReturnValue>\r
1220                                                 <ReturnType>System.Void</ReturnType>\r
1221                                         </ReturnValue>\r
1222                                         <Parameters>\r
1223                                                 <Parameter Name="sourceArray" Type="System.Array"/>\r
1224                                                 <Parameter Name="destinationArray" Type="System.Array"/>\r
1225                                                 <Parameter Name="length" Type="System.Int32"/>\r
1226                                         </Parameters>\r
1227                                         <Docs>\r
1228                                                 <summary>\r
1229                                                         <para> Copies the specified number of elements from the \r
1230       specified source array to the specified destination array.</para>\r
1231                                                 </summary>\r
1232                                                 <param name="sourceArray">A <see cref="T:System.Array"/> that contains the data to copy.</param>\r
1233                                                 <param name="destinationArray">A <see cref="T:System.Array"/> that receives the data.</param>\r
1234                                                 <param name="length">A <see cref="T:System.Int32"/> designating the number of elements to copy, starting with the first element and proceeding in order.</param>\r
1235                                                 <exception cref="T:System.ArgumentNullException">\r
1236                                                         <para>\r
1237                                                                 <paramref name="sourceArray"/> or <paramref name="destinationArray"/> is <see langword="null"/>.</para>\r
1238                                                 </exception>\r
1239                                                 <exception cref="T:System.RankException">\r
1240                                                         <para>\r
1241                                                                 <paramref name="sourceArray"/> and <paramref name="destinationArray"/> have different ranks.</para>\r
1242                                                 </exception>\r
1243                                                 <exception cref="T:System.ArrayTypeMismatchException">\r
1244                                                         <para>The elements in both arrays are built-in types, and converting from the type of the elements of <paramref name="sourceArray"/> into the type of the elements in <paramref name="destinationArray"/> requires a narrowing conversion.</para>\r
1245                                                         <para> -or-</para>\r
1246                                                         <para>Both arrays are built-in types, and one array is a value-type array and the other an array of interface type not implemented by that value-type.</para>\r
1247                                                         <para> -or-</para>\r
1248                                                         <para>Both arrays are user-defined value types and are not of the same type.</para>\r
1249                                                 </exception>\r
1250                                                 <exception cref="T:System.InvalidCastException">\r
1251                                                         <para> At least one of the elements in <paramref name="sourceArray"/> is not assignment-compatible with the type of <paramref name="destinationArray"/>.</para>\r
1252                                                 </exception>\r
1253                                                 <exception cref="T:System.ArgumentOutOfRangeException">\r
1254                                                         <para>\r
1255                                                                 <paramref name="length"/> &lt; 0.</para>\r
1256                                                 </exception>\r
1257                                                 <exception cref="T:System.ArgumentException">\r
1258                                                         <para>\r
1259                                                                 <paramref name="length"/> &gt; <paramref name="sourceArray"/>.Length.</para>\r
1260                                                         <para>-or-</para>\r
1261                                                         <para>\r
1262                                                                 <paramref name="length "/> &gt; <paramref name="destinationArray"/>.Length.</para>\r
1263                                                 </exception>\r
1264                                                 <remarks>\r
1265                                                         <para>This version of <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)"/> is equivalent to <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)"/> (<paramref name="sourceArray"/>, <paramref name="sourceArray"/>.GetLowerBound(0), <paramref name="destinationArray"/>,\r
1266 <paramref name="destinationArray"/>.GetLowerBound(0), <paramref name="length"/>). </para>\r
1267                                                         <para>If <paramref name="sourceArray"/> and <paramref name="destinationArray"/> are of different\r
1268 types, <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)"/> performs widening conversions on the elements of\r
1269 <paramref name="sourceArray"/> as necessary before storing the information in \r
1270 <paramref name="destinationArray"/>. Value types will be boxed when being converted to a \r
1271 <see cref="T:System.Object"/>. If the necessary \r
1272 conversion is a narrowing conversion, a <see cref="T:System.ArrayTypeMismatchException"/> exception is thrown. <block subset="none" type="note">\r
1273 For information regarding valid conversions performed by this method, see\r
1274 <see cref="T:System.Convert"/>.</block>\r
1275                                                         </para>\r
1276                                                         <para>If an exception is thrown while copying, the state of\r
1277 <paramref name="destinationArray"/> is undefined. </para>\r
1278                                                         <para>If <paramref name="sourceArray"/> and <paramref name="destinationArray"/> are the same\r
1279 array, <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)"/> copies the source elements safely to their\r
1280 destination, as if the copy were done through an intermediate array. </para>\r
1281                                                 </remarks>\r
1282                                                 <example>\r
1283                                                         <para>This example demonstrates the <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)"/> method.</para>\r
1284                                                         <code lang="C#">using System;\r
1285 public class ArrayCopyExample {\r
1286    public static void Main() {\r
1287       int[] intAryOrig = new int[3];\r
1288       double[] dAryCopy = new double[3];\r
1289       for ( int i = 0; i &lt; intAryOrig.Length; i++ )\r
1290          intAryOrig[i] = i+3;\r
1291       //copy the first 2 elements of the source into the destination\r
1292       Array.Copy( intAryOrig, dAryCopy, 2);\r
1293       Console.Write( "The elements of the first array are: " );\r
1294       for ( int i = 0; i &lt; intAryOrig.Length; i++ ) \r
1295          Console.Write( "{0,3}", intAryOrig[i] );\r
1296       Console.WriteLine();\r
1297       Console.Write( "The elements of the copied array are: " );\r
1298       for ( int i = 0; i &lt; dAryCopy.Length; i++ ) \r
1299          Console.Write( "{0,3}", dAryCopy[i] );\r
1300    }\r
1301 }\r
1302    </code>\r
1303                                                         <para>The output is</para>\r
1304                                                         <c>\r
1305                                                                 <para>The elements of the first array are: 3 4 5</para>\r
1306                                                                 <para>The elements of the copied array are: 3 4 0</para>\r
1307                                                         </c>\r
1308                                                 </example>\r
1309                                         </Docs>\r
1310                                         <Excluded>0</Excluded>\r
1311                                 </Member>\r
1312                                 <Member MemberName="Copy">\r
1313                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static void Copy(class System.Array sourceArray, int32 sourceIndex, class System.Array destinationArray, int32 destinationIndex, int32 length)"/>\r
1314                                         <MemberSignature Language="C#" Value="public static void Copy(Array sourceArray, int sourceIndex, Array destinationArray, int destinationIndex, int length);"/>\r
1315                                         <MemberType>Method</MemberType>\r
1316                                         <ReturnValue>\r
1317                                                 <ReturnType>System.Void</ReturnType>\r
1318                                         </ReturnValue>\r
1319                                         <Parameters>\r
1320                                                 <Parameter Name="sourceArray" Type="System.Array"/>\r
1321                                                 <Parameter Name="sourceIndex" Type="System.Int32"/>\r
1322                                                 <Parameter Name="destinationArray" Type="System.Array"/>\r
1323                                                 <Parameter Name="destinationIndex" Type="System.Int32"/>\r
1324                                                 <Parameter Name="length" Type="System.Int32"/>\r
1325                                         </Parameters>\r
1326                                         <Docs>\r
1327                                                 <summary>\r
1328                                                         <para> Copies the specified number of elements from a source \r
1329       array starting at the specified source index to a destination array\r
1330       starting at the specified destination index.</para>\r
1331                                                 </summary>\r
1332                                                 <param name="sourceArray">The <see cref="T:System.Array"/> that contains the data to copy.</param>\r
1333                                                 <param name="sourceIndex">A <see cref="T:System.Int32"/> that contains the index in <paramref name="sourceArray"/> from which copying begins.</param>\r
1334                                                 <param name="destinationArray">The <see cref="T:System.Array"/> that receives the data.</param>\r
1335                                                 <param name="destinationIndex">A <see cref="T:System.Int32"/> that contains the index in <paramref name="destinationArray"/> at which storing begins.</param>\r
1336                                                 <param name="length">A <see cref="T:System.Int32"/> that contains the number of elements to copy.</param>\r
1337                                                 <exception cref="T:System.ArgumentNullException">\r
1338                                                         <para>\r
1339                                                                 <paramref name="sourceArray"/> or <paramref name="destinationArray"/> is <see langword="null"/>.</para>\r
1340                                                 </exception>\r
1341                                                 <exception cref="T:System.RankException">\r
1342                                                         <para>\r
1343                                                                 <paramref name="sourceArray"/> and <paramref name="destinationArray"/> have different ranks.</para>\r
1344                                                 </exception>\r
1345                                                 <exception cref="T:System.ArrayTypeMismatchException">\r
1346                                                         <para>The elements in both arrays are built-in types, and converting from the type of the elements of <paramref name="sourceArray"/> into the type of the elements in <paramref name="destinationArray"/> requires a narrowing conversion.</para>\r
1347                                                         <para>-or-</para>\r
1348                                                         <para>Both arrays are built-in types, and one array is a value-type array and the other an array of interface type not implemented by that value-type.</para>\r
1349                                                         <para>-or-</para>\r
1350                                                         <para>Both arrays are user-defined value types and are not of the same type.</para>\r
1351                                                 </exception>\r
1352                                                 <exception cref="T:System.InvalidCastException">\r
1353                                                         <para>At least one element in <paramref name="sourceArray"/> is assignment-incompatible with the type of <paramref name="destinationArray"/>.</para>\r
1354                                                 </exception>\r
1355                                                 <exception cref="T:System.ArgumentOutOfRangeException">\r
1356                                                         <para>\r
1357                                                                 <paramref name="sourceIndex"/> &lt; <paramref name="sourceArray"/>.GetLowerBound(0).</para>\r
1358                                                         <para>-or-</para>\r
1359                                                         <para>\r
1360                                                                 <paramref name="destinationIndex"/> &lt; <paramref name="destinationArray"/>.GetLowerBound(0).</para>\r
1361                                                         <para>-or-</para>\r
1362                                                         <para>\r
1363                                                                 <paramref name="length"/> &lt; 0.</para>\r
1364                                                 </exception>\r
1365                                                 <exception cref="T:System.ArgumentException">\r
1366                                                         <para>(<paramref name="sourceIndex"/> + <paramref name="length"/> ) &gt; (<paramref name="sourceArray"/>.GetLowerBound(0) + <paramref name="sourceArray"/>.Length).</para>\r
1367                                                         <para>(<paramref name="destinationIndex"/> + <paramref name="length"/> ) &gt; ( <paramref name="destinationArray"/>.GetLowerBound(0) + <paramref name="destinationArray"/>.Length).</para>\r
1368                                                 </exception>\r
1369                                                 <remarks>\r
1370                                                         <para>If <paramref name="sourceArray"/> and <paramref name="destinationArray"/>\r
1371 are of different types, <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)"/> performs widening conversions on the elements of\r
1372 <paramref name="sourceArray"/> as necessary before storing the information in \r
1373 <paramref name="destinationArray"/>. Value types will be boxed when being converted to a \r
1374 <see cref="T:System.Object"/>. If the necessary \r
1375 conversion is a narrowing conversion, a <see cref="T:System.ArrayTypeMismatchException"/> exception is thrown. <block subset="none" type="note">\r
1376 For information regarding valid conversions performed by this method, see\r
1377 <see cref="T:System.Convert"/> .</block>\r
1378                                                         </para>\r
1379                                                         <para>If an exception is thrown while copying, the state of\r
1380 <paramref name="destinationArray"/> is undefined. </para>\r
1381                                                         <para>If <paramref name="sourceArray"/> and <paramref name="destinationArray"/>\r
1382 are the same array, <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)"/> copies the source elements safely to their\r
1383 destination as if the copy were done through an intermediate array. </para>\r
1384                                                 </remarks>\r
1385                                                 <example>\r
1386                                                         <para>This example demonstrates the <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)"/> method.</para>\r
1387                                                         <code lang="C#">using System;\r
1388 class ArrayCopyExample {\r
1389    public static void Main() {\r
1390       int[] intAry = { 0, 10, 20, 30, 40, 50 };\r
1391       Console.Write( "The elements of the array are: " );\r
1392       foreach ( int i in intAry )\r
1393          Console.Write( "{0,3}", i );\r
1394       Console.WriteLine();\r
1395       Array.Copy( intAry, 2, intAry, 0, 4 );\r
1396       Console.WriteLine( "After copying elements 2 through 5 into elements 0 through 4" );\r
1397       Console.Write( "The elements of the array are: " );\r
1398       foreach ( int i in intAry )\r
1399          Console.Write( "{0,3}", i );\r
1400       Console.WriteLine();     \r
1401    }\r
1402 }\r
1403    </code>\r
1404                                                         <para>The output is</para>\r
1405                                                         <c>\r
1406                                                                 <para>The elements of the array are: 0 10 20 30 40 50</para>\r
1407                                                                 <para>After copying elements 2 through 5 into elements 0 through 4</para>\r
1408                                                                 <para>The elements of the array are: 20 30 40 50 40 50</para>\r
1409                                                         </c>\r
1410                                                 </example>\r
1411                                         </Docs>\r
1412                                         <Excluded>0</Excluded>\r
1413                                 </Member>\r
1414                                 <Member MemberName="CopyTo">\r
1415                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig virtual void CopyTo(class System.Array array, int32 index)"/>\r
1416                                         <MemberSignature Language="C#" Value="public virtual void CopyTo(Array array, int index);"/>\r
1417                                         <MemberType>Method</MemberType>\r
1418                                         <ReturnValue>\r
1419                                                 <ReturnType>System.Void</ReturnType>\r
1420                                         </ReturnValue>\r
1421                                         <Parameters>\r
1422                                                 <Parameter Name="array" Type="System.Array"/>\r
1423                                                 <Parameter Name="index" Type="System.Int32"/>\r
1424                                         </Parameters>\r
1425                                         <Docs>\r
1426                                                 <summary>\r
1427                                                         <para> Copies all the elements of the current zero-based instance to the specified one-dimensional array starting at the specified subscript in the destination array.</para>\r
1428                                                 </summary>\r
1429                                                 <param name="array">A one-dimensional <see cref="T:System.Array"/> that is the destination of the elements copied from the current instance.</param>\r
1430                                                 <param name="index">A <see cref="T:System.Int32"/> that contains the index in <paramref name="array"/> at which copying begins.</param>\r
1431                                                 <exception cref="T:System.ArgumentNullException">\r
1432                                                         <paramref name="array"/> is <see langword="null"/>.</exception>\r
1433                                                 <exception cref="T:System.RankException">\r
1434                                                         <para>The current instance has more than one dimension.</para>\r
1435                                                 </exception>\r
1436                                                 <exception cref="T:System.ArgumentOutOfRangeException">\r
1437                                                         <paramref name="index"/> &lt; <paramref name="array"/>\r
1438                                                         <see langword=".GetLowerBound(0)"/>.</exception>\r
1439                                                 <exception cref="T:System.ArgumentException">\r
1440                                                         <para>\r
1441                                                                 <paramref name="array"/> has more than one dimension.</para>\r
1442                                                         <para> -or-</para>\r
1443                                                         <para>( <paramref name="index"/> + Length of the current instance) &gt; (<paramref name="array"/>\r
1444                                                                 <see langword=".GetLowerBound(0)"/> + <paramref name="array"/>\r
1445                                                                 <see langword=".Length"/>).</para>\r
1446                                                         <para> -or-</para>\r
1447                                                         <para>The number of elements in the current instance is greater than the available space from <paramref name="index"/> to the end of <paramref name="array"/>.</para>\r
1448                                                 </exception>\r
1449                                                 <exception cref="T:System.ArrayTypeMismatchException">The element type of the current instance is not assignment-compatible with the element type of <paramref name="array"/>.</exception>\r
1450                                                 <remarks>\r
1451                                                         <para>\r
1452                                                                 <paramref name="index"/> is the array index in the destination array at which copying begins.</para>\r
1453                                                         <block subset="none" type="note">\r
1454                                                                 <para>This method is implemented to support the <see cref="T:System.Collections.ICollection"/> interface. If implementing <see cref="T:System.Collections.ICollection"/> is not explicitly required, use <see cref="M:System.Array.Copy(System.Array,System.Array,System.Int32)"/>\r
1455    to avoid an extra indirection.</para>\r
1456                                                                 <para>If this method throws an exception while copying, the state of <paramref name="array"/>\r
1457 is undefined.</para>\r
1458                                                         </block>\r
1459                                                         <para>\r
1460                                                                 <block subset="none" type="behaviors">As described\r
1461    above.</block>\r
1462                                                         </para>\r
1463                                                         <para>\r
1464                                                                 <block subset="none" type="default">As described\r
1465    above.</block>\r
1466                                                         </para>\r
1467                                                         <para>\r
1468                                                                 <block subset="none" type="overrides">Override this\r
1469    method to copy elements of the current instance to a specified\r
1470    array.</block>\r
1471                                                         </para>\r
1472                                                         <para>\r
1473                                                                 <block subset="none" type="usage">Use this method to\r
1474    copy elements of the current instance to a specified array.</block>\r
1475                                                         </para>\r
1476                                                 </remarks>\r
1477                                                 <example>\r
1478                                                         <para> The following example shows how to copy the elements of one <see cref="T:System.Array"/> into another.</para>\r
1479                                                         <code lang="C#">using System;\r
1480 \r
1481 public class ArrayCopyToExample\r
1482 {\r
1483    public static void Main()\r
1484    {\r
1485       Array aryOne = Array.CreateInstance(typeof(Object), 3);\r
1486       aryOne.SetValue("one", 0);\r
1487       aryOne.SetValue("two", 1);\r
1488       aryOne.SetValue("three", 2);\r
1489 \r
1490       Array aryTwo = Array.CreateInstance(typeof(Object), 5);\r
1491       for (int i=0; i &lt; aryTwo.Length; i++)\r
1492          aryTwo.SetValue(i, i);\r
1493 \r
1494       Console.WriteLine("The contents of the first array are:");\r
1495       foreach (object o in aryOne)\r
1496          Console.Write("{0} ", o);\r
1497       Console.WriteLine();\r
1498       Console.WriteLine("The original contents of the second array are:");\r
1499       foreach (object o in aryTwo)\r
1500          Console.Write("{0} ", o);\r
1501       Console.WriteLine();\r
1502       \r
1503       aryOne.CopyTo(aryTwo, 1);\r
1504 \r
1505       Console.WriteLine("The new contents of the second array are:");\r
1506       foreach( object o in aryTwo)\r
1507          Console.Write("{0} ", o);\r
1508    }\r
1509 }\r
1510 </code>\r
1511                                                         <para>The output is</para>\r
1512                                                         <para>\r
1513                                                                 <c>The contents of the first array are:</c>\r
1514                                                         </para>\r
1515                                                         <para>\r
1516                                                                 <c> one two three</c>\r
1517                                                         </para>\r
1518                                                         <para>\r
1519                                                                 <c>The original contents of the second array are:</c>\r
1520                                                         </para>\r
1521                                                         <para>\r
1522                                                                 <c>0 1 2 3 4</c>\r
1523                                                         </para>\r
1524                                                         <para>\r
1525                                                                 <c> The new contents of the second array are:</c>\r
1526                                                         </para>\r
1527                                                         <para>\r
1528                                                                 <c>0 one two three 4</c>\r
1529                                                         </para>\r
1530                                                 </example>\r
1531                                         </Docs>\r
1532                                         <Excluded>0</Excluded>\r
1533                                 </Member>\r
1534                                 <Member MemberName="CreateInstance">\r
1535                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static class System.Array CreateInstance(class System.Type elementType, int32[] lengths)"/>\r
1536                                         <MemberSignature Language="C#" Value="public static Array CreateInstance(Type elementType, int[] lengths);"/>\r
1537                                         <MemberType>Method</MemberType>\r
1538                                         <ReturnValue>\r
1539                                                 <ReturnType>System.Array</ReturnType>\r
1540                                         </ReturnValue>\r
1541                                         <Parameters>\r
1542                                                 <Parameter Name="elementType" Type="System.Type"/>\r
1543                                                 <Parameter Name="lengths" Type="System.Int32[]"/>\r
1544                                         </Parameters>\r
1545                                         <Docs>\r
1546                                                 <summary>\r
1547                                                         <para>Creates a zero-based, multidimensional array of the\r
1548       specified <see cref="T:System.Type"/> and dimension lengths.</para>\r
1549                                                 </summary>\r
1550                                                 <param name="elementType">The <see cref="T:System.Type"/> of the elements contained in the new <see cref="T:System.Array"/> instance. </param>\r
1551                                                 <param name="lengths">A one-dimensional array of <see cref="T:System.Int32"/> objects that contains the size of each dimension of the new <see cref="T:System.Array"/> instance.</param>\r
1552                                                 <returns>\r
1553                                                         <para>A new zero-based, multidimensional <see cref="T:System.Array"/> instance of the\r
1554    specified <see cref="T:System.Type"/> with the specified length for\r
1555    each dimension. The <see cref="P:System.Array.Rank"/> of the new instance is equal to\r
1556 <paramref name="lengths"/>.Length.</para>\r
1557                                                 </returns>\r
1558                                                 <exception cref="T:System.ArgumentNullException">\r
1559                                                         <para>\r
1560                                                                 <paramref name="elementType"/> or <paramref name="lengths"/> is <see langword="null"/>.</para>\r
1561                                                 </exception>\r
1562                                                 <exception cref="T:System.ArgumentException">\r
1563                                                         <para>\r
1564                                                                 <paramref name="elementType"/> is not a valid <see cref="T:System.Type"/>.</para>\r
1565                                                         <para>-or-</para>\r
1566                                                         <para>\r
1567                                                                 <paramref name="lengths"/>.Length = 0.</para>\r
1568                                                 </exception>\r
1569                                                 <exception cref="T:System.ArgumentOutOfRangeException">A value in <paramref name="lengths"/> is less than zero.</exception>\r
1570                                                 <remarks>\r
1571                                                         <para>The number of elements in <paramref name="lengths"/> is required to equal the number of\r
1572    dimensions in the new <see cref="T:System.Array"/> instance. Each element of <paramref name="lengths"/> specifies\r
1573    the length of the corresponding dimension in the new instance.</para>\r
1574                                                         <para>Reference-type elements will be set to <see langword="null"/>. Value-type elements will be set to zero, \r
1575 except for <see cref="T:System.Boolean"/>\r
1576 elements, which will be set to\r
1577 <see langword="false"/>.</para>\r
1578                                                         <para>\r
1579                                                                 <block subset="none" type="note">Unlike most classes, <see cref="T:System.Array"/> provides the\r
1580 <see cref="M:System.Array.CreateInstance(System.Type,System.Int32)"/> method, instead of public constructors, to allow\r
1581 for late bound access.</block>\r
1582                                                         </para>\r
1583                                                 </remarks>\r
1584                                                 <example>\r
1585                                                         <para> The following example shows how to create and initialize a\r
1586       multidimensional <see cref="T:System.Array"/>.</para>\r
1587                                                         <code lang="C#">\r
1588 using System;\r
1589 \r
1590 public class CreateMultiDimArrayExample\r
1591 {\r
1592    public static void Main()\r
1593    {\r
1594       int i, j, k;\r
1595       int[] indexAry = {2, 4, 5};\r
1596       Array ary = Array.CreateInstance( typeof(int), indexAry );\r
1597       for( i = ary.GetLowerBound(0); i &lt;= ary.GetUpperBound(0); i++ )\r
1598       {\r
1599          for( j = ary.GetLowerBound(1); j &lt;= ary.GetUpperBound(1); j++ )\r
1600          {\r
1601             for( k = ary.GetLowerBound(2); k &lt;= ary.GetUpperBound(2); k++ )\r
1602             {\r
1603                ary.SetValue( (100*i + 10*j + k), i, j, k );\r
1604             }\r
1605          }\r
1606       }\r
1607       Console.WriteLine("The elements of the array are:");\r
1608       for( i = ary.GetLowerBound(0); i &lt;= ary.GetUpperBound(0); i++)\r
1609       {\r
1610          for( j = ary.GetLowerBound(1); j &lt;= ary.GetUpperBound(1); j++)\r
1611          {\r
1612              for( k = ary.GetLowerBound(2); k &lt;= ary.GetUpperBound(2); k++ )\r
1613             {\r
1614                Console.Write("{0, 3} ", ary.GetValue(i, j, k));\r
1615             }\r
1616             Console.WriteLine();\r
1617          }\r
1618          Console.WriteLine();\r
1619       }\r
1620    }\r
1621 }\r
1622    </code>\r
1623                                                         <para>The output is</para>\r
1624                                                         <code>The elements of the array are:\r
1625   0   1   2   3   4\r
1626  10  11  12  13  14\r
1627  20  21  22  23  24\r
1628  30  31  32  33  34\r
1629 \r
1630 100 101 102 103 104\r
1631 110 111 112 113 114\r
1632 120 121 122 123 124\r
1633 130 131 132 133 134 \r
1634 </code>\r
1635                                                 </example>\r
1636                                         </Docs>\r
1637                                         <Excluded>1</Excluded>\r
1638                                         <ExcludedLibrary>ExtendedArray</ExcludedLibrary>\r
1639                                 </Member>\r
1640                                 <Member MemberName="CreateInstance">\r
1641                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static class System.Array CreateInstance(class System.Type elementType, int32 length1, int32 length2, int32 length3)"/>\r
1642                                         <MemberSignature Language="C#" Value="public static Array CreateInstance(Type elementType, int length1, int length2, int length3);"/>\r
1643                                         <MemberType>Method</MemberType>\r
1644                                         <ReturnValue>\r
1645                                                 <ReturnType>System.Array</ReturnType>\r
1646                                         </ReturnValue>\r
1647                                         <Parameters>\r
1648                                                 <Parameter Name="elementType" Type="System.Type"/>\r
1649                                                 <Parameter Name="length1" Type="System.Int32"/>\r
1650                                                 <Parameter Name="length2" Type="System.Int32"/>\r
1651                                                 <Parameter Name="length3" Type="System.Int32"/>\r
1652                                         </Parameters>\r
1653                                         <Docs>\r
1654                                                 <summary>\r
1655                                                         <para>Creates a zero-based, three-dimensional array of the\r
1656       specified <see cref="T:System.Type"/> and dimension lengths.</para>\r
1657                                                 </summary>\r
1658                                                 <param name="elementType">The <see cref="T:System.Type"/> of the elements contained in the new <see cref="T:System.Array"/> instance. </param>\r
1659                                                 <param name="length1">A <see cref="T:System.Int32"/> that contains the number of elements contained in the first dimension of the new <see cref="T:System.Array"/> instance. </param>\r
1660                                                 <param name="length2">A <see cref="T:System.Int32"/> that contains the number of elements contained in the second dimension of the new <see cref="T:System.Array"/> instance. </param>\r
1661                                                 <param name="length3">A <see cref="T:System.Int32"/> that contains the number of elements contained in the third dimension of the new <see cref="T:System.Array"/> instance. </param>\r
1662                                                 <returns>\r
1663                                                         <para>A new zero-based, three-dimensional <see cref="T:System.Array"/> instance of <paramref name="elementType"/> objects with the size\r
1664 <paramref name="length1"/> for the first dimension, <paramref name="length2"/> for the second, and \r
1665 <paramref name="length3"/> for the third.</para>\r
1666                                                 </returns>\r
1667                                                 <exception cref="T:System.ArgumentNullException">\r
1668                                                         <paramref name="elementType"/> is <see langword="null"/>.</exception>\r
1669                                                 <exception cref="T:System.ArgumentException">\r
1670                                                         <paramref name="elementType"/> is not a valid <see cref="T:System.Type"/>.</exception>\r
1671                                                 <exception cref="T:System.ArgumentOutOfRangeException">\r
1672                                                         <para>\r
1673                                                                 <paramref name="length1"/> &lt; 0.</para>\r
1674                                                         <para>-or-</para>\r
1675                                                         <para>\r
1676                                                                 <paramref name="length2"/> &lt; 0.</para>\r
1677                                                         <para>-or-</para>\r
1678                                                         <para>\r
1679                                                                 <paramref name="length3"/> &lt; 0.</para>\r
1680                                                 </exception>\r
1681                                                 <remarks>\r
1682                                                         <para>Reference-type elements will be set to <see langword="null"/>. Value-type elements will be set to zero, \r
1683    except for <see cref="T:System.Boolean"/>\r
1684    elements, which will be set to\r
1685 <see langword="false"/>.</para>\r
1686                                                         <para>\r
1687                                                                 <block subset="none" type="note">Unlike most classes, <see cref="T:System.Array"/> provides the\r
1688 <see cref="M:System.Array.CreateInstance(System.Type,System.Int32)"/> method, instead of public constructors, to allow \r
1689 for late bound access.</block>\r
1690                                                         </para>\r
1691                                                 </remarks>\r
1692                                                 <example>\r
1693                                                         <para> The following example shows how to create and\r
1694       initialize a three-dimensional <see cref="T:System.Array"/>.</para>\r
1695                                                         <code lang="C#">\r
1696 using System;\r
1697 \r
1698 public class Create3DArrayExample\r
1699 {\r
1700    public static void Main()\r
1701    {\r
1702       int i, j, k;\r
1703       Array ary = Array.CreateInstance( typeof(int), 2, 4, 3 );\r
1704       for( i = ary.GetLowerBound(0); i &lt;= ary.GetUpperBound(0); i++ )\r
1705       {\r
1706          for( j = ary.GetLowerBound(1); j &lt;= ary.GetUpperBound(1); j++ )\r
1707          {\r
1708             for( k = ary.GetLowerBound(2); k &lt;= ary.GetUpperBound(2); k++ )\r
1709             {\r
1710                ary.SetValue( (100*i + 10*j + k), i, j, k );\r
1711             }\r
1712          }\r
1713       }\r
1714       Console.WriteLine("The elements of the array are:");\r
1715       for( i = ary.GetLowerBound(0); i &lt;= ary.GetUpperBound(0); i++)\r
1716       {\r
1717          for( j = ary.GetLowerBound(1); j &lt;= ary.GetUpperBound(1); j++)\r
1718          {\r
1719              for( k = ary.GetLowerBound(2); k &lt;= ary.GetUpperBound(2); k++ )\r
1720             {\r
1721                Console.Write("{0, 3} ", ary.GetValue(i, j, k));\r
1722             }\r
1723             Console.WriteLine();\r
1724          }\r
1725          Console.WriteLine();\r
1726       }\r
1727    }\r
1728 }\r
1729    </code>\r
1730                                                         <para>The output is</para>\r
1731                                                         <code>The elements of the array are:\r
1732   0   1   2\r
1733  10  11  12\r
1734  20  21  22\r
1735  30  31  32\r
1736 \r
1737 100 101 102\r
1738 110 111 112\r
1739 120 121 122\r
1740 130 131 132\r
1741  </code>\r
1742                                                 </example>\r
1743                                         </Docs>\r
1744                                         <Excluded>1</Excluded>\r
1745                                         <ExcludedLibrary>ExtendedArray</ExcludedLibrary>\r
1746                                 </Member>\r
1747                                 <Member MemberName="CreateInstance">\r
1748                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static class System.Array CreateInstance(class System.Type elementType, int32 length1, int32 length2)"/>\r
1749                                         <MemberSignature Language="C#" Value="public static Array CreateInstance(Type elementType, int length1, int length2);"/>\r
1750                                         <MemberType>Method</MemberType>\r
1751                                         <ReturnValue>\r
1752                                                 <ReturnType>System.Array</ReturnType>\r
1753                                         </ReturnValue>\r
1754                                         <Parameters>\r
1755                                                 <Parameter Name="elementType" Type="System.Type"/>\r
1756                                                 <Parameter Name="length1" Type="System.Int32"/>\r
1757                                                 <Parameter Name="length2" Type="System.Int32"/>\r
1758                                         </Parameters>\r
1759                                         <Docs>\r
1760                                                 <summary>\r
1761                                                         <para>Creates a zero-based, two-dimensional array of the specified <see cref="T:System.Type"/>\r
1762 and dimension lengths.</para>\r
1763                                                 </summary>\r
1764                                                 <param name="elementType">The <see cref="T:System.Type"/> of the elements contained in the new <see cref="T:System.Array"/> instance. </param>\r
1765                                                 <param name="length1">A <see cref="T:System.Int32"/> that contains the number of elements contained in the first dimension of the new <see cref="T:System.Array"/> instance. </param>\r
1766                                                 <param name="length2">A <see cref="T:System.Int32"/> that contains the number of elements contained in the second dimension of the new <see cref="T:System.Array"/> instance. </param>\r
1767                                                 <returns>\r
1768                                                         <para>A new zero-indexed, two-dimensional <see cref="T:System.Array"/> instance of <paramref name="elementType"/> objects with the size\r
1769 <paramref name="length1"/> for the first dimension and <paramref name="length2"/> \r
1770 for the second.</para>\r
1771                                                 </returns>\r
1772                                                 <exception cref="T:System.ArgumentNullException">\r
1773                                                         <paramref name="elementType"/> is <see langword="null"/>.</exception>\r
1774                                                 <exception cref="T:System.ArgumentException">\r
1775                                                         <paramref name="elementType"/> is not a valid <see cref="T:System.Type"/>.</exception>\r
1776                                                 <exception cref="T:System.ArgumentOutOfRangeException">\r
1777                                                         <para>\r
1778                                                                 <paramref name="length1"/> &lt; 0.</para>\r
1779                                                         <para>-or-</para>\r
1780                                                         <para>\r
1781                                                                 <paramref name="length2"/> &lt; 0.</para>\r
1782                                                 </exception>\r
1783                                                 <remarks>\r
1784                                                         <para>Reference-type elements will be set to <see langword="null"/>. Value-type elements will be set to zero, \r
1785    except for <see cref="T:System.Boolean"/>\r
1786    elements, which will be set to\r
1787 <see langword="false"/>.</para>\r
1788                                                         <para>\r
1789                                                                 <block subset="none" type="note">Unlike most classes, <see cref="T:System.Array"/> provides the\r
1790 <see cref="M:System.Array.CreateInstance(System.Type,System.Int32)"/> method, instead of public constructors, to allow \r
1791 for late bound access.</block>\r
1792                                                         </para>\r
1793                                                 </remarks>\r
1794                                                 <example>\r
1795                                                         <para> The following example shows how to create and\r
1796       initialize a two-dimensional <see cref="T:System.Array"/>.</para>\r
1797                                                         <code lang="C#">\r
1798 using System;\r
1799 \r
1800 public class Create2DArrayExample\r
1801 {\r
1802    public static void Main()\r
1803    {\r
1804       int i, j;\r
1805       Array ary = Array.CreateInstance( typeof(int), 5, 3 );\r
1806       for( i = ary.GetLowerBound(0); i &lt;= ary.GetUpperBound(0); i++ )\r
1807       {\r
1808          for( j = ary.GetLowerBound(1); j &lt;= ary.GetUpperBound(1); j++ )\r
1809          {\r
1810             ary.SetValue( (10*i + j), i, j );\r
1811          }\r
1812       }\r
1813       Console.WriteLine("The elements of the array are:");\r
1814       for( i = ary.GetLowerBound(0); i &lt;= ary.GetUpperBound(0); i++)\r
1815       {\r
1816          for( j = ary.GetLowerBound(1); j &lt;= ary.GetUpperBound(1); j++)\r
1817          {\r
1818             Console.Write("{0, 2} ", ary.GetValue(i, j));\r
1819          }\r
1820          Console.WriteLine();\r
1821       }\r
1822    }\r
1823\r
1824   </code>\r
1825                                                         <para>The output is</para>\r
1826                                                         <code>The elements of the array are:\r
1827  0  1  2\r
1828 10 11 12\r
1829 20 21 22\r
1830 30 31 32\r
1831 40 41 42\r
1832  </code>\r
1833                                                 </example>\r
1834                                         </Docs>\r
1835                                         <Excluded>1</Excluded>\r
1836                                         <ExcludedLibrary>ExtendedArray</ExcludedLibrary>\r
1837                                 </Member>\r
1838                                 <Member MemberName="CreateInstance">\r
1839                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static class System.Array CreateInstance(class System.Type elementType, int32 length)"/>\r
1840                                         <MemberSignature Language="C#" Value="public static Array CreateInstance(Type elementType, int length);"/>\r
1841                                         <MemberType>Method</MemberType>\r
1842                                         <ReturnValue>\r
1843                                                 <ReturnType>System.Array</ReturnType>\r
1844                                         </ReturnValue>\r
1845                                         <Parameters>\r
1846                                                 <Parameter Name="elementType" Type="System.Type"/>\r
1847                                                 <Parameter Name="length" Type="System.Int32"/>\r
1848                                         </Parameters>\r
1849                                         <Docs>\r
1850                                                 <summary>\r
1851                                                         <para>Constructs a zero-based, one-dimensional array with the specified number of elements of the specified type.</para>\r
1852                                                 </summary>\r
1853                                                 <param name="elementType">The <see cref="T:System.Type"/> of the elements contained in the new <see cref="T:System.Array"/> instance.</param>\r
1854                                                 <param name="length">A <see cref="T:System.Int32"/> that contains the number of elements contained in the new <see cref="T:System.Array"/> instance.</param>\r
1855                                                 <returns>\r
1856                                                         <para>A zero-based, one-dimensional <see cref="T:System.Array"/> object containing <paramref name="length"/> elements of type\r
1857 <paramref name="elementType"/>.</para>\r
1858                                                 </returns>\r
1859                                                 <exception cref="T:System.ArgumentNullException">\r
1860                                                         <paramref name="elementType"/> is <see langword="null"/>.</exception>\r
1861                                                 <exception cref="T:System.ArgumentException">\r
1862                                                         <paramref name="elementType"/> is not a valid <see cref="T:System.Type"/>.</exception>\r
1863                                                 <exception cref="T:System.ArgumentOutOfRangeException">\r
1864                                                         <paramref name="length"/> &lt; 0.</exception>\r
1865                                                 <remarks>\r
1866                                                         <para>Reference-type elements will be set to <see langword="null"/>. Value-type elements will be set to zero, \r
1867    except for <see cref="T:System.Boolean"/>\r
1868    elements, which will be set to\r
1869 <see langword="false"/>.</para>\r
1870                                                         <para>\r
1871                                                                 <block subset="none" type="note">Unlike most classes, <see cref="T:System.Array"/> provides the <see cref="M:System.Array.CreateInstance(System.Type,System.Int32)"/> method, instead of public constructors, to allow\r
1872 for late bound access.</block>\r
1873                                                         </para>\r
1874                                                 </remarks>\r
1875                                                 <example>\r
1876                                                         <para> The following example shows how to create and\r
1877       initialize a one-dimensional <see cref="T:System.Array"/>.</para>\r
1878                                                         <code lang="C#">using System;\r
1879 \r
1880 public class ArrayCreateInstanceExample\r
1881 {\r
1882 \r
1883    public static void Main()\r
1884    {\r
1885 \r
1886       Array intAry = Array.CreateInstance(typeof(int),5);\r
1887       for (int i=intAry.GetLowerBound(0);i&lt;=intAry.GetUpperBound(0);i++)\r
1888          intAry.SetValue(i*3,i);\r
1889       Console.Write("The values of the array are:");\r
1890       foreach (int i in intAry)\r
1891          Console.Write("{0} ",i);\r
1892    \r
1893    }\r
1894 \r
1895 }\r
1896    </code>\r
1897                                                         <para>The output is</para>\r
1898                                                         <para>\r
1899                                                                 <c>The values of the array are: 0 3 6 9 12</c>\r
1900                                                         </para>\r
1901                                                 </example>\r
1902                                         </Docs>\r
1903                                         <Excluded>0</Excluded>\r
1904                                 </Member>\r
1905                                 <Member MemberName="CreateInstance">\r
1906                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static class System.Array CreateInstance(class System.Type elementType, int32[] lengths, int32[] lowerBounds)"/>\r
1907                                         <MemberSignature Language="C#" Value="public static Array CreateInstance(Type elementType, int[] lengths, int[] lowerBounds);"/>\r
1908                                         <MemberType>Method</MemberType>\r
1909                                         <ReturnValue>\r
1910                                                 <ReturnType>System.Array</ReturnType>\r
1911                                         </ReturnValue>\r
1912                                         <Parameters>\r
1913                                                 <Parameter Name="elementType" Type="System.Type"/>\r
1914                                                 <Parameter Name="lengths" Type="System.Int32[]"/>\r
1915                                                 <Parameter Name="lowerBounds" Type="System.Int32[]"/>\r
1916                                         </Parameters>\r
1917                                         <Docs>\r
1918                                                 <summary>\r
1919                                                         <para>Creates a multidimensional array whose element type is the specified <see cref="T:System.Type"/>, and dimension lengths and lower bounds, as specified.</para>\r
1920                                                 </summary>\r
1921                                                 <param name="elementType">The <see cref="T:System.Type"/> of the elements contained in the new <see cref="T:System.Array"/> instance. </param>\r
1922                                                 <param name="lengths">A one-dimensional array of <see cref="T:System.Int32"/> objects that contains the size of each dimension of the new <see cref="T:System.Array"/> instance.</param>\r
1923                                                 <param name="lowerBounds">A one-dimensional array of <see cref="T:System.Int32"/> objects that contains the lower bound of each dimension of the new <see cref="T:System.Array"/> instance.</param>\r
1924                                                 <returns>\r
1925                                                         <para>A new multidimensional <see cref="T:System.Array"/> whose element type is the specified <see cref="T:System.Type"/> and with\r
1926    the specified length and lower bound for each dimension.</para>\r
1927                                                 </returns>\r
1928                                                 <exception cref="T:System.ArgumentNullException">\r
1929                                                         <para>\r
1930                                                                 <paramref name="elementType"/>, <paramref name="lengths"/>, or <paramref name="lowerBounds"/> is <see langword="null"/>. </para>\r
1931                                                 </exception>\r
1932                                                 <exception cref="T:System.ArgumentException">\r
1933                                                         <para>\r
1934                                                                 <paramref name="elementType"/> is not a valid <see cref="T:System.Type"/>.</para>\r
1935                                                         <para>-or-</para>\r
1936                                                         <para>\r
1937                                                                 <paramref name="lengths"/>.Length = 0.</para>\r
1938                                                         <para> -or-</para>\r
1939                                                         <para>\r
1940                                                                 <paramref name="lengths"/> and <paramref name="lowerBounds"/> do not contain the same number of elements.</para>\r
1941                                                 </exception>\r
1942                                                 <exception cref="T:System.ArgumentOutOfRangeException">A value in <paramref name="lengths"/> is less than zero.</exception>\r
1943                                                 <remarks>\r
1944                                                         <para>The <paramref name="lengths"/> and <paramref name="lowerBounds"/>\r
1945 are required to have the same number of elements. The number of elements in\r
1946 <paramref name="lengths"/>\r
1947 equals the number of dimensions in the new <see cref="T:System.Array"/> instance</para>\r
1948                                                         <para> Each element of <paramref name="lengths"/>\r
1949 specifies the length of the corresponding dimension in the new <see cref="T:System.Array"/> instance.</para>\r
1950                                                         <para> Each element of <paramref name="lowerBounds"/> specifies the lower bound of the\r
1951 corresponding dimension in the new <see cref="T:System.Array"/> instance.</para>\r
1952                                                         <para> Reference-type elements will be set to <see langword="null"/>. Value-type elements will be set to zero,\r
1953 except for <see cref="T:System.Boolean"/>\r
1954 elements, which will be set to\r
1955 <see langword="false"/>.</para>\r
1956                                                         <para>\r
1957                                                                 <block subset="none" type="note">Unlike most classes, <see cref="T:System.Array"/> provides the\r
1958 <see cref="M:System.Array.CreateInstance(System.Type,System.Int32)"/> method, instead of public constructors, to allow\r
1959 for late bound access.</block>\r
1960                                                         </para>\r
1961                                                 </remarks>\r
1962                                                 <example>\r
1963                                                         <para> The following example shows how to create and\r
1964       initialize a multidimensional <see cref="T:System.Array"/>\r
1965       with specified low bounds.</para>\r
1966                                                         <code lang="C#">\r
1967 using System;\r
1968 \r
1969 public class MultiDimNonZeroBoundExample\r
1970 {\r
1971    public static void Main()\r
1972    {\r
1973       int i, j, k;\r
1974       int[] indexAry = {4, 2, 3};\r
1975       int[] lowboundAry = {3, 2, 1};\r
1976       Array ary = Array.CreateInstance( typeof(int), indexAry, lowboundAry );\r
1977       for( i = ary.GetLowerBound(0); i &lt;= ary.GetUpperBound(0); i++ )\r
1978       {\r
1979          for( j = ary.GetLowerBound(1); j &lt;= ary.GetUpperBound(1); j++ )\r
1980          {\r
1981             for( k = ary.GetLowerBound(2); k &lt;= ary.GetUpperBound(2); k++ )\r
1982             {\r
1983                ary.SetValue( (100*i + 10*j + k), i, j, k );\r
1984             }\r
1985          }\r
1986       }\r
1987       Console.WriteLine("The elements of the array are:");\r
1988       for( i = ary.GetLowerBound(0); i &lt;= ary.GetUpperBound(0); i++)\r
1989       {\r
1990          for( j = ary.GetLowerBound(1); j &lt;= ary.GetUpperBound(1); j++)\r
1991          {\r
1992              for( k = ary.GetLowerBound(2); k &lt;= ary.GetUpperBound(2); k++ )\r
1993             {\r
1994                Console.Write("{0, 3} ", ary.GetValue(i, j, k));\r
1995             }\r
1996             Console.WriteLine();\r
1997          }\r
1998          Console.WriteLine();\r
1999       }\r
2000    }\r
2001 }\r
2002    </code>\r
2003                                                         <para>The output is</para>\r
2004                                                         <code>The elements of the array are:\r
2005 321 322 323\r
2006 331 332 333\r
2007 \r
2008 421 422 423\r
2009 431 432 433\r
2010 \r
2011 521 522 523\r
2012 531 532 533\r
2013 \r
2014 621 622 623\r
2015 631 632 633\r
2016 </code>\r
2017                                                 </example>\r
2018                                         </Docs>\r
2019                                         <Excluded>1</Excluded>\r
2020                                         <ExcludedLibrary>ExtendedArray</ExcludedLibrary>\r
2021                                 </Member>\r
2022                                 <Member MemberName="Exists&lt;T&gt;">\r
2023                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static bool Exists&lt;T&gt;(!!0[] array, class System.Predicate`1&lt;!!0&gt; match)"/>\r
2024                                         <MemberSignature Language="C#" Value="public static bool Exists&lt;T&gt;(T[] array, Predicate&lt;T&gt; match)"/>\r
2025                                         <MemberType>Method</MemberType>\r
2026                                         <ReturnValue>\r
2027                                                 <ReturnType>System.Boolean</ReturnType>\r
2028                                         </ReturnValue>\r
2029                                         <Parameters>\r
2030                                                 <Parameter Name="array" Type="T[]"/>\r
2031                                                 <Parameter Name="match" Type="System.Predicate&lt;T&gt;"/>\r
2032                                         </Parameters>\r
2033                                         <Docs>\r
2034                                                 <summary>\r
2035                                                         <para>Determines whether the specified array contains any element that matches the conditions defined by the specified predicate.</para>\r
2036                                                 </summary>\r
2037                                                 <param name="array">The array to search.</param>\r
2038                                                 <param name="match">\r
2039                                                         <para>The predicate that defines the conditions of the elements to search for.</para>\r
2040                                                 </param>\r
2041                                                 <returns>\r
2042                                                         <para>\r
2043                                                                 <see langword="true"/>, if the array contains one or more elements that match the conditions defined by the specified predicate; otherwise, <see langword="false"/>.</para>\r
2044                                                 </returns>\r
2045                                                 <exception cref="T:System.ArgumentNullException">\r
2046                                                         <paramref name="array"/>  or <paramref name="match"/> is <see langword="null"/>.</exception>\r
2047                                                 <remarks>\r
2048                                                         <para>The predicate returns <see langword="true"/> if the object passed to it matches the delegate. Each element of <paramref name="array"/> is passed to the predicate in turn, and processing is stopped when the predicate returns <see langword="true"/>.</para>\r
2049                                                 </remarks>\r
2050                                         </Docs>\r
2051                                         <Excluded>0</Excluded>\r
2052                                 </Member>\r
2053                                 <Member MemberName="Find&lt;T&gt;">\r
2054                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static !!0 Find&lt;T&gt;(!!0[] array, class System.Predicate`1&lt;!!0&gt; match)"/>\r
2055                                         <MemberSignature Language="C#" Value="public static T Find&lt;T&gt;(T[] array, Predicate&lt;T&gt; match)"/>\r
2056                                         <MemberType>Method</MemberType>\r
2057                                         <ReturnValue>\r
2058                                                 <ReturnType>T</ReturnType>\r
2059                                         </ReturnValue>\r
2060                                         <Parameters>\r
2061                                                 <Parameter Name="array" Type="T[]"/>\r
2062                                                 <Parameter Name="match" Type="System.Predicate&lt;T&gt;"/>\r
2063                                         </Parameters>\r
2064                                         <Docs>\r
2065                                                 <summary>\r
2066                                                         <para>Searches for an element that matches the predicate, and returns the first occurrence within the entire array.</para>\r
2067                                                 </summary>\r
2068                                                 <param name="array">The array to search.</param>\r
2069                                                 <param name="match">\r
2070                                                         <para>The predicate that defines the conditions of the element to search for.</para>\r
2071                                                 </param>\r
2072                                                 <returns>\r
2073                                                         <para>The first element that matches the conditions defined by the specified predicate, if found; otherwise, the default value for type <paramref name="T"/>.</para>\r
2074                                                 </returns>\r
2075                                                 <exception cref="T:System.ArgumentNullException">\r
2076                                                         <paramref name="array"/>  or <paramref name="match"/> is <see langword="null"/>.</exception>\r
2077                                                 <remarks>\r
2078                                                         <para>The elements of <paramref name="array"/> are individually passed to the predicate, moving forward in the array, starting with the first element and ending with the last element. Processing is stopped when the predicate returns <see langword="true"/>.</para>\r
2079                                                 </remarks>\r
2080                                         </Docs>\r
2081                                         <Excluded>0</Excluded>\r
2082                                 </Member>\r
2083                                 <Member MemberName="FindAll&lt;T&gt;">\r
2084                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static class !!0[] FindAll&lt;T&gt;(!!0[] array, class System.Predicate`1&lt;!!0&gt; match)"/>\r
2085                                         <MemberSignature Language="C#" Value="public static T[] FindAll&lt;T&gt;(T[] array, Predicate&lt;T&gt; match)"/>\r
2086                                         <MemberType>Method</MemberType>\r
2087                                         <ReturnValue>\r
2088                                                 <ReturnType>T[]</ReturnType>\r
2089                                         </ReturnValue>\r
2090                                         <Parameters>\r
2091                                                 <Parameter Name="array" Type="T[]"/>\r
2092                                                 <Parameter Name="match" Type="System.Predicate&lt;T&gt;"/>\r
2093                                         </Parameters>\r
2094                                         <Docs>\r
2095                                                 <summary>\r
2096                                                         <para>Retrieves all the elements that match the conditions defined by the specified predicate.</para>\r
2097                                                 </summary>\r
2098                                                 <param name="array">The array to search.</param>\r
2099                                                 <param name="match">\r
2100                                                         <para>The predicate that specifies the elements to search for.</para>\r
2101                                                 </param>\r
2102                                                 <returns>\r
2103                                                         <para>An array containing all the elements that match the conditions defined by the specified predicate, if found; otherwise, an empty array.</para>\r
2104                                                 </returns>\r
2105                                                 <exception cref="T:System.ArgumentNullException">\r
2106                                                         <paramref name="array"/>  or <paramref name="match"/> is <see langword="null"/>.</exception>\r
2107                                                 <remarks>\r
2108                                                         <para>The elements of <paramref name="array"/> are individually passed to the predicate, and those elements for which the predicate returns <see langword="true"/>, are saved in the returned array.</para>\r
2109                                                 </remarks>\r
2110                                         </Docs>\r
2111                                         <Excluded>0</Excluded>\r
2112                                 </Member>\r
2113                                 <Member MemberName="FindIndex&lt;T&gt;">\r
2114                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static int32 FindIndex&lt;T&gt;(!!0[] array, class System.Predicate`1&lt;!!0&gt; match)"/>\r
2115                                         <MemberSignature Language="C#" Value="public static int FindIndex&lt;T&gt;(T[] array, Predicate&lt;T&gt; match)"/>\r
2116                                         <MemberType>Method</MemberType>\r
2117                                         <ReturnValue>\r
2118                                                 <ReturnType>System.Int32</ReturnType>\r
2119                                         </ReturnValue>\r
2120                                         <Parameters>\r
2121                                                 <Parameter Name="array" Type="T[]"/>\r
2122                                                 <Parameter Name="match" Type="System.Predicate&lt;T&gt;"/>\r
2123                                         </Parameters>\r
2124                                         <Docs>\r
2125                                                 <summary>\r
2126                                                         <para>Searches for an element that matches the predicate, and returns the zero-based index of the first occurrence within the entire array.</para>\r
2127                                                 </summary>\r
2128                                                 <param name="array">The array to search.</param>\r
2129                                                 <param name="match">\r
2130                                                         <para>The predicate that specifies the elements to search for.</para>\r
2131                                                 </param>\r
2132                                                 <returns>\r
2133                                                         <para>The zero-based index of the first occurrence of an element that matches the conditions defined by <paramref name="match"/>, if found; otherwise, -1.</para>\r
2134                                                 </returns>\r
2135                                                 <exception cref="T:System.ArgumentNullException">\r
2136                                                         <paramref name="array"/>  or <paramref name="match"/> is <see langword="null"/>.</exception>\r
2137                                                 <remarks>\r
2138                                                         <para>The elements of <paramref name="array"/> are individually passed to the predicate. The array is searched forward starting at the first element and ending at the last element. Processing is stopped when the predicate returns <see langword="true"/>.</para>\r
2139                                                 </remarks>\r
2140                                         </Docs>\r
2141                                         <Excluded>0</Excluded>\r
2142                                 </Member>\r
2143                                 <Member MemberName="FindIndex&lt;T&gt;">\r
2144                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static int32 FindIndex&lt;T&gt;(!!0[] array, int32 startIndex, class System.Predicate`1&lt;!!0&gt; match)"/>\r
2145                                         <MemberSignature Language="C#" Value="public static int FindIndex&lt;T&gt;(T[] array, int startIndex, Predicate&lt;T&gt; match)"/>\r
2146                                         <MemberType>Method</MemberType>\r
2147                                         <ReturnValue>\r
2148                                                 <ReturnType>System.Int32</ReturnType>\r
2149                                         </ReturnValue>\r
2150                                         <Parameters>\r
2151                                                 <Parameter Name="array" Type="T[]"/>\r
2152                                                 <Parameter Name="startIndex" Type="System.Int32"/>\r
2153                                                 <Parameter Name="match" Type="System.Predicate&lt;T&gt;"/>\r
2154                                         </Parameters>\r
2155                                         <Docs>\r
2156                                                 <summary>\r
2157                                                         <para>Searches for an element that matches the predicate, and returns the zero-based index of the first occurrence within the range of elements in the array that extends from the specified index to the last element.</para>\r
2158                                                 </summary>\r
2159                                                 <param name="array">The array to search.</param>\r
2160                                                 <param name="startIndex">\r
2161                                                         <para>The zero-based starting index of the search.</para>\r
2162                                                 </param>\r
2163                                                 <param name="match">\r
2164                                                         <para>The predicate that specifies the elements to search for.</para>\r
2165                                                 </param>\r
2166                                                 <returns>\r
2167                                                         <para>The zero-based index of the first occurrence of an element that matches the conditions defined by <paramref name="match"/>, if found; otherwise, -1.</para>\r
2168                                                 </returns>\r
2169                                                 <exception cref="T:System.ArgumentNullException">\r
2170                                                         <paramref name="array"/>  or <paramref name="match"/> is <see langword="null"/>.</exception>\r
2171                                                 <exception cref="T:System.ArgumentOutOfRangeException">\r
2172                                                         <paramref name="startIndex"/> is less than zero or greater than <paramref name="array"/>\r
2173                                                         <see langword=".Length"/>.</exception>\r
2174                                                 <remarks>\r
2175                                                         <para>The elements of <paramref name="array"/> are individually passed to the predicate. The array is searched forward starting at the specified index and ending at the last element.  Processing is stopped when the predicate returns <see langword="true"/>.</para>\r
2176                                                 </remarks>\r
2177                                         </Docs>\r
2178                                         <Excluded>0</Excluded>\r
2179                                 </Member>\r
2180                                 <Member MemberName="FindIndex&lt;T&gt;">\r
2181                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static int32 FindIndex&lt;T&gt;(!!0[] array, int32 startIndex, int32 count, class System.Predicate`1&lt;!!0&gt; match)"/>\r
2182                                         <MemberSignature Language="C#" Value="public static int FindIndex&lt;T&gt;(T[] array, int startIndex, int count, Predicate&lt;T&gt; match)"/>\r
2183                                         <MemberType>Method</MemberType>\r
2184                                         <ReturnValue>\r
2185                                                 <ReturnType>System.Int32</ReturnType>\r
2186                                         </ReturnValue>\r
2187                                         <Parameters>\r
2188                                                 <Parameter Name="array" Type="T[]"/>\r
2189                                                 <Parameter Name="startIndex" Type="System.Int32"/>\r
2190                                                 <Parameter Name="count" Type="System.Int32"/>\r
2191                                                 <Parameter Name="match" Type="System.Predicate&lt;T&gt;"/>\r
2192                                         </Parameters>\r
2193                                         <Docs>\r
2194                                                 <summary>\r
2195                                                         <para>Searches for an element that matches the predicate, and returns the zero-based index of the first occurrence within the range of elements in the array that starts at the specified index and contains the specified number of elements.</para>\r
2196                                                 </summary>\r
2197                                                 <param name="array">The array to search.</param>\r
2198                                                 <param name="startIndex">\r
2199                                                         <para>The zero-based starting index of the search</para>\r
2200                                                 </param>\r
2201                                                 <param name="count">\r
2202                                                         <para>The number of consecutive elements to search.</para>\r
2203                                                 </param>\r
2204                                                 <param name="match">\r
2205                                                         <para>The predicate that specifies the elements to search for.</para>\r
2206                                                 </param>\r
2207                                                 <returns>\r
2208                                                         <para>The zero-based index of the first occurrence of an element that matches the conditions defined by <paramref name="match"/>, if found; otherwise, -1.</para>\r
2209                                                 </returns>\r
2210                                                 <exception cref="T:System.ArgumentNullException">\r
2211                                                         <paramref name="array"/>  or <paramref name="match"/> is <see langword="null"/>.</exception>\r
2212                                                 <exception cref="T:System.ArgumentOutOfRangeException">\r
2213                                                         <para>\r
2214                                                                 <paramref name="startIndex"/> is less than zero.</para>\r
2215                                                         <para>-or-</para>\r
2216                                                         <para>\r
2217                                                                 <paramref name="count"/> is less than zero.</para>\r
2218                                                         <para>-or-</para>\r
2219                                                         <para>\r
2220                                                                 <paramref name="startIndex"/> + <paramref name="count"/> is greater than <paramref name="array"/>\r
2221                                                                 <see langword=".Length"/>.</para>\r
2222                                                 </exception>\r
2223                                                 <remarks>\r
2224                                                         <para>The elements of <paramref name="array"/> are individually passed to the predicate. The array is searched forward starting at the specified index and going for <paramref name="count"/> elements.  Processing is stopped when the predicate returns <see langword="true"/>.</para>\r
2225                                                 </remarks>\r
2226                                         </Docs>\r
2227                                         <Excluded>0</Excluded>\r
2228                                 </Member>\r
2229                                 <Member MemberName="FindLast&lt;T&gt;">\r
2230                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static !!0 FindLast&lt;T&gt;(!!0[] array, class System.Predicate`1&lt;!!0&gt; match)"/>\r
2231                                         <MemberSignature Language="C#" Value="public static T FindLast&lt;T&gt;(T[] array, Predicate&lt;T&gt; match)"/>\r
2232                                         <MemberType>Method</MemberType>\r
2233                                         <ReturnValue>\r
2234                                                 <ReturnType>T</ReturnType>\r
2235                                         </ReturnValue>\r
2236                                         <Parameters>\r
2237                                                 <Parameter Name="array" Type="T[]"/>\r
2238                                                 <Parameter Name="match" Type="System.Predicate&lt;T&gt;"/>\r
2239                                         </Parameters>\r
2240                                         <Docs>\r
2241                                                 <summary>\r
2242                                                         <para>Searches for an element that matches the predicate, and returns the last occurrence within the entire array.</para>\r
2243                                                 </summary>\r
2244                                                 <param name="array">The array to search.</param>\r
2245                                                 <param name="match">\r
2246                                                         <para>The predicate that specifies the elements to search for.</para>\r
2247                                                 </param>\r
2248                                                 <returns>\r
2249                                                         <para>The last element that matches the conditions defined by the specified predicate, if found; otherwise, the default value for type <paramref name="T"/>.</para>\r
2250                                                 </returns>\r
2251                                                 <exception cref="T:System.ArgumentNullException">\r
2252                                                         <paramref name="array"/>  or <paramref name="match"/> is <see langword="null"/>.</exception>\r
2253                                                 <remarks>\r
2254                                                         <para>The elements of <paramref name="array"/> are individually passed to the predicate, moving backward in the array, starting with the last element and ending with the first element. Processing is stopped when a match is found.</para>\r
2255                                                 </remarks>\r
2256                                         </Docs>\r
2257                                         <Excluded>0</Excluded>\r
2258                                 </Member>\r
2259                                 <Member MemberName="FindLastIndex&lt;T&gt;">\r
2260                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static int32 FindLastIndex&lt;T&gt;(!!0[] array, class System.Predicate`1&lt;!!0&gt; match)"/>\r
2261                                         <MemberSignature Language="C#" Value="public static int FindLastIndex&lt;T&gt;(T[] array, Predicate&lt;T&gt; match)"/>\r
2262                                         <MemberType>Method</MemberType>\r
2263                                         <ReturnValue>\r
2264                                                 <ReturnType>System.Int32</ReturnType>\r
2265                                         </ReturnValue>\r
2266                                         <Parameters>\r
2267                                                 <Parameter Name="array" Type="T[]"/>\r
2268                                                 <Parameter Name="match" Type="System.Predicate&lt;T&gt;"/>\r
2269                                         </Parameters>\r
2270                                         <Docs>\r
2271                                                 <summary>\r
2272                                                         <para>Searches for an element that matches the predicate, and returns the zero-based index of the last occurrence within the entire array.</para>\r
2273                                                 </summary>\r
2274                                                 <param name="array">The array to search.</param>\r
2275                                                 <param name="match">\r
2276                                                         <para>The predicate that specifies the elements to search for.</para>\r
2277                                                 </param>\r
2278                                                 <returns>\r
2279                                                         <para>The zero-based index of the first occurrence of an element that matches the conditions defined by <paramref name="match"/>, if found; otherwise, -1.</para>\r
2280                                                 </returns>\r
2281                                                 <exception cref="T:System.ArgumentNullException">\r
2282                                                         <paramref name="array"/>  or <paramref name="match"/> is <see langword="null"/>.</exception>\r
2283                                                 <remarks>\r
2284                                                         <para>The elements of <paramref name="array"/> are individually passed to the predicate. The array is searched backwards starting at the last element and ending at the first element.  Processing is stopped when the predicate returns <see langword="true"/>.</para>\r
2285                                                 </remarks>\r
2286                                         </Docs>\r
2287                                         <Excluded>0</Excluded>\r
2288                                 </Member>\r
2289                                 <Member MemberName="FindLastIndex&lt;T&gt;">\r
2290                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static int32 FindLastIndex&lt;T&gt;(!!0[] array, int32 startIndex, class System.Predicate`1&lt;!!0&gt; match)"/>\r
2291                                         <MemberSignature Language="C#" Value="public static int FindLastIndex&lt;T&gt;(T[] array, int startIndex, Predicate&lt;T&gt; match)"/>\r
2292                                         <MemberType>Method</MemberType>\r
2293                                         <ReturnValue>\r
2294                                                 <ReturnType>System.Int32</ReturnType>\r
2295                                         </ReturnValue>\r
2296                                         <Parameters>\r
2297                                                 <Parameter Name="array" Type="T[]"/>\r
2298                                                 <Parameter Name="startIndex" Type="System.Int32"/>\r
2299                                                 <Parameter Name="match" Type="System.Predicate&lt;T&gt;"/>\r
2300                                         </Parameters>\r
2301                                         <Docs>\r
2302                                                 <summary>\r
2303                                                         <para>Searches for an element that matches the predicate, and returns the zero-based index of the last occurrence within the range of elements in the array that extends from the specified index to the last element.</para>\r
2304                                                 </summary>\r
2305                                                 <param name="array">The array to search.</param>\r
2306                                                 <param name="startIndex">\r
2307                                                         <para>The zero-based starting index of the backward search.</para>\r
2308                                                 </param>\r
2309                                                 <param name="match">\r
2310                                                         <para>The predicate that specifies the elements to search for.</para>\r
2311                                                 </param>\r
2312                                                 <returns>\r
2313                                                         <para>The zero-based index of the first occurrence of an element that matches the conditions defined by <paramref name="match"/>, if found; otherwise, -1.</para>\r
2314                                                 </returns>\r
2315                                                 <exception cref="T:System.ArgumentNullException">\r
2316                                                         <paramref name="array"/>  or <paramref name="match"/> is <see langword="null"/>.</exception>\r
2317                                                 <exception cref="T:System.ArgumentOutOfRangeException">\r
2318                                                         <paramref name="startIndex"/> is less than zero or greater than <paramref name="array"/>\r
2319                                                         <see langword=".Length"/>.</exception>\r
2320                                                 <remarks>\r
2321                                                         <para>The elements of <paramref name="array"/> are individually passed to the predicate. The array is searched backward starting at the specified index and ending at the first element. Processing is stopped when the predicate returns <see langword="true"/>.</para>\r
2322                                                 </remarks>\r
2323                                         </Docs>\r
2324                                         <Excluded>0</Excluded>\r
2325                                 </Member>\r
2326                                 <Member MemberName="FindLastIndex&lt;T&gt;">\r
2327                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static int32 FindLastIndex&lt;T&gt;(!!0[] array, int32 startIndex, int32 count, class System.Predicate`1&lt;!!0&gt; match)"/>\r
2328                                         <MemberSignature Language="C#" Value="public static int FindLastIndex&lt;T&gt;(T[] array, int startIndex, int count, Predicate&lt;T&gt; match)"/>\r
2329                                         <MemberType>Method</MemberType>\r
2330                                         <ReturnValue>\r
2331                                                 <ReturnType>System.Int32</ReturnType>\r
2332                                         </ReturnValue>\r
2333                                         <Parameters>\r
2334                                                 <Parameter Name="array" Type="T[]"/>\r
2335                                                 <Parameter Name="startIndex" Type="System.Int32"/>\r
2336                                                 <Parameter Name="count" Type="System.Int32"/>\r
2337                                                 <Parameter Name="match" Type="System.Predicate&lt;T&gt;"/>\r
2338                                         </Parameters>\r
2339                                         <Docs>\r
2340                                                 <summary>\r
2341                                                         <para>Searches for an element that matches the predicate, and returns the zero-based index of the last occurrence within the range of elements in the array that ends at the specified index and contains the specified number of elements.</para>\r
2342                                                 </summary>\r
2343                                                 <param name="array">The array to search.</param>\r
2344                                                 <param name="startIndex">\r
2345                                                         <para>The zero-based starting index of the backward search.</para>\r
2346                                                 </param>\r
2347                                                 <param name="count">\r
2348                                                         <para>The number of consecutive elements to search.</para>\r
2349                                                 </param>\r
2350                                                 <param name="match">\r
2351                                                         <para>The predicate that specifies the elements to search for.</para>\r
2352                                                 </param>\r
2353                                                 <returns>\r
2354                                                         <para>The zero-based index of the first occurrence of an element that matches the conditions defined by <paramref name="match"/>, if found; otherwise, -1.</para>\r
2355                                                 </returns>\r
2356                                                 <exception cref="T:System.ArgumentNullException">\r
2357                                                         <paramref name="array"/>  or <paramref name="match"/> is <see langword="null"/>.</exception>\r
2358                                                 <exception cref="T:System.ArgumentOutOfRangeException">\r
2359                                                         <para>\r
2360                                                                 <paramref name="startIndex"/> is less than zero or greater than <paramref name="array"/>\r
2361                                                                 <see langword=".Length"/>.</para>\r
2362                                                         <para>-or-</para>\r
2363                                                         <para>\r
2364                                                                 <paramref name="count"/> is less than zero.</para>\r
2365                                                         <para>-or-</para>\r
2366                                                         <para>\r
2367                                                                 <paramref name="count"/> is greater than <paramref name="startIndex"/> + 1.</para>\r
2368                                                 </exception>\r
2369                                                 <remarks>\r
2370                                                         <para>The elements of <paramref name="array"/> are individually passed to the predicate. The array is searched backward starting at the specified index and going for <paramref name="count"/> elements. Processing is stopped when the predicate returns <see langword="true"/>.</para>\r
2371                                                 </remarks>\r
2372                                         </Docs>\r
2373                                         <Excluded>0</Excluded>\r
2374                                 </Member>\r
2375                                 <Member MemberName="ForEach&lt;T&gt;">\r
2376                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static void ForEach&lt;T&gt;(!!0[] array, class System.Action`1&lt;!!0&gt; action)"/>\r
2377                                         <MemberSignature Language="C#" Value="public static void ForEach&lt;T&gt;(T[] array, Action&lt;T&gt; action)"/>\r
2378                                         <MemberType>Method</MemberType>\r
2379                                         <ReturnValue>\r
2380                                                 <ReturnType>System.Void</ReturnType>\r
2381                                         </ReturnValue>\r
2382                                         <Parameters>\r
2383                                                 <Parameter Name="array" Type="T[]"/>\r
2384                                                 <Parameter Name="action" Type="System.Action&lt;T&gt;"/>\r
2385                                         </Parameters>\r
2386                                         <Docs>\r
2387                                                 <summary>\r
2388                                                         <para>Performs the specified action on each element of the specified array.</para>\r
2389                                                 </summary>\r
2390                                                 <param name="array">The array on whose elements the action is to be performed.</param>\r
2391                                                 <param name="action">\r
2392                                                         <para>The action to perform on each element of <paramref name="array"/>.</para>\r
2393                                                 </param>\r
2394                                                 <returns>\r
2395                                                         <para>The first element that matches the conditions defined by the specified predicate, if found; otherwise, the default value for type <paramref name="T"/>.</para>\r
2396                                                 </returns>\r
2397                                                 <exception cref="T:System.ArgumentNullException">\r
2398                                                         <paramref name="array"/>  or <paramref name="action"/> is <see langword="null"/>.</exception>\r
2399                                                 <remarks>\r
2400                                                         <para>The elements of <paramref name="array"/> are individually passed to the action. The elements of the current array are individually passed to the action delegate, sequentially, in index order, and on the same thread as that used to call <see langword="ForEach"/>. Execution stops if the action throws an exception.</para>\r
2401                                                 </remarks>\r
2402                                         </Docs>\r
2403                                         <Excluded>0</Excluded>\r
2404                                 </Member>\r
2405                                 <Member MemberName="GetEnumerator">\r
2406                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig virtual class System.Collections.IEnumerator GetEnumerator()"/>\r
2407                                         <MemberSignature Language="C#" Value="public virtual IEnumerator GetEnumerator();"/>\r
2408                                         <MemberType>Method</MemberType>\r
2409                                         <ReturnValue>\r
2410                                                 <ReturnType>System.Collections.IEnumerator</ReturnType>\r
2411                                         </ReturnValue>\r
2412                                         <Parameters/>\r
2413                                         <Docs>\r
2414                                                 <summary>\r
2415                                                         <para>Returns a <see cref="T:System.Collections.IEnumerator"/> for the current instance.</para>\r
2416                                                 </summary>\r
2417                                                 <returns>\r
2418                                                         <para>A <see cref="T:System.Collections.IEnumerator"/> for the current instance.</para>\r
2419                                                 </returns>\r
2420                                                 <remarks>\r
2421                                                         <para>A <see cref="T:System.Collections.IEnumerator"/> grants read-access to the elements of a\r
2422 <see cref="T:System.Array"/>.</para>\r
2423                                                         <para>\r
2424                                                                 <block subset="none" type="note"> This method is\r
2425    implemented to support the <see cref="T:System.Collections.IEnumerator"/> interface. For more information regarding the use of an\r
2426    enumerator, see <see cref="T:System.Collections.IEnumerator"/>.</block>\r
2427                                                         </para>\r
2428                                                         <block subset="none" type="behaviors">\r
2429                                                                 <para>Enumerators can be used to read the data in the collection, but they cannot be used to modify the underlying collection.</para>\r
2430                                                                 <para> Initially, the enumerator is positioned before the\r
2431       first element of the current instance. <see cref="M:System.Collections.IEnumerator.Reset"/> returns the enumerator to this\r
2432       position. Therefore, after an enumerator is created or after a\r
2433    <see cref="M:System.Collections.IEnumerator.Reset"/>, <see cref="M:System.Collections.IEnumerator.MoveNext"/> is required to be\r
2434       called to advance the enumerator to the first element of the collection before\r
2435       reading the value of <see cref="P:System.Collections.IEnumerator.Current"/>.</para>\r
2436                                                                 <para>\r
2437                                                                         <see cref="P:System.Collections.IEnumerator.Current"/> returns the same object until either\r
2438 <see cref="M:System.Collections.IEnumerator.MoveNext"/> or\r
2439 <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>\r
2440                                                                 <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 <see langword="false"/>. If the last call to <see cref="M:System.Collections.IEnumerator.MoveNext"/> returned <see langword="false"/>, <see cref="P:System.Collections.IEnumerator.Current"/> is unspecified. 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>\r
2441                                                                 <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>\r
2442                                                                 <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>\r
2443                                                         </block>\r
2444                                                         <block subset="none" type="default">\r
2445                                                                 <para>Multidimensional arrays will be processed in Row-major form. </para>\r
2446                                                                 <para>\r
2447                                                                         <block subset="none" type="note"> For some\r
2448       multidimensional <see cref="T:System.Array"/>\r
2449       objects, it can be desirable for an enumerator to process them in Column-major form.</block>\r
2450                                                                 </para>\r
2451                                                         </block>\r
2452                                                         <para>\r
2453                                                                 <block subset="none" type="overrides">Override this\r
2454    method to provide read-access to the current instance.</block>\r
2455                                                         </para>\r
2456                                                         <para>\r
2457                                                                 <block subset="none" type="usage">Use this method\r
2458    to iterate over the elements of the current instance.</block>\r
2459                                                         </para>\r
2460                                                 </remarks>\r
2461                                                 <example>\r
2462                                                         <para>This example demonstrates the <see cref="M:System.Array.GetEnumerator"/> method.</para>\r
2463                                                         <code lang="C#">using System;\r
2464 using System.Collections;\r
2465 public class ArrayGetEnumerator {\r
2466    public static void Main() {\r
2467       string[,] strAry = {{"1","one"}, {"2", "two"}, {"3", "three"}};\r
2468       Console.Write( "The elements of the array are: " );\r
2469       IEnumerator sEnum = strAry.GetEnumerator();\r
2470       while ( sEnum.MoveNext() )\r
2471          Console.Write( " {0}", sEnum.Current );\r
2472    }\r
2473 }\r
2474    </code>\r
2475                                                         <para>The output is</para>\r
2476                                                         <c>\r
2477                                                                 <para>The elements of the array are: 1 one 2 two 3 three</para>\r
2478                                                         </c>\r
2479                                                 </example>\r
2480                                         </Docs>\r
2481                                         <Excluded>0</Excluded>\r
2482                                 </Member>\r
2483                                 <Member MemberName="GetLength">\r
2484                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig int32 GetLength(int32 dimension)"/>\r
2485                                         <MemberSignature Language="C#" Value="public int GetLength(int dimension)"/>\r
2486                                         <MemberType>Method</MemberType>\r
2487                                         <ReturnValue>\r
2488                                                 <ReturnType>System.Int32</ReturnType>\r
2489                                         </ReturnValue>\r
2490                                         <Parameters>\r
2491                                                 <Parameter Name="dimension" Type="System.Int32"/>\r
2492                                         </Parameters>\r
2493                                         <Docs>\r
2494                                                 <summary>\r
2495                                                         <para>Gets the number of elements in the specified dimension of the array.</para>\r
2496                                                 </summary>\r
2497                                                 <param name="dimension">The zero-based dimension of the array whose length is to be determined.</param>\r
2498                                                 <returns>\r
2499                                                         <para>The number of elements in the specified dimension of the array.</para>\r
2500                                                 </returns>\r
2501                                                 <exception cref="T:System.IndexOutOfRangeException">\r
2502                                                         <para>\r
2503                                                                 <paramref name="dimension"/> is less than zero.</para>\r
2504                                                         <para>-or-</para>\r
2505                                                         <para>\r
2506                                                                 <paramref name="dimension"/> is equal to or greater than <see cref="P:System.Array.Rank"/>.</para>\r
2507                                                 </exception>\r
2508                                         </Docs>\r
2509                                         <Excluded>1</Excluded>\r
2510                                         <ExcludedLibrary>RuntimeInfrastructure</ExcludedLibrary>\r
2511                                 </Member>\r
2512                                 <Member MemberName="GetLowerBound">\r
2513                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig instance int32 GetLowerBound(int32 dimension)"/>\r
2514                                         <MemberSignature Language="C#" Value="public int GetLowerBound(int dimension);"/>\r
2515                                         <MemberType>Method</MemberType>\r
2516                                         <ReturnValue>\r
2517                                                 <ReturnType>System.Int32</ReturnType>\r
2518                                         </ReturnValue>\r
2519                                         <Parameters>\r
2520                                                 <Parameter Name="dimension" Type="System.Int32"/>\r
2521                                         </Parameters>\r
2522                                         <Docs>\r
2523                                                 <summary>\r
2524                                                         <para>Returns the lower bound of the specified dimension in\r
2525       the current instance.</para>\r
2526                                                 </summary>\r
2527                                                 <param name="dimension">A <see cref="T:System.Int32"/> that contains the zero-based dimension of the current instance whose lower bound is to be determined.</param>\r
2528                                                 <returns>\r
2529                                                         <para>A <see cref="T:System.Int32"/> that contains the lower bound of the specified dimension in the\r
2530    current instance.</para>\r
2531                                                 </returns>\r
2532                                                 <exception cref="T:System.IndexOutOfRangeException">\r
2533                                                         <para>\r
2534                                                                 <paramref name="dimension"/> &lt; 0.</para>\r
2535                                                         <para>-or-</para>\r
2536                                                         <para>\r
2537                                                                 <paramref name="dimension"/> is equal to or greater than the <see cref="P:System.Array.Rank"/> property of the current instance.</para>\r
2538                                                 </exception>\r
2539                                                 <remarks>\r
2540                                                         <para>\r
2541                                                                 <block subset="none" type="note">For example,\r
2542    <see cref="M:System.Array.GetLowerBound(System.Int32)"/> (0) returns the lower bound of the first\r
2543       dimension of the current instance, and <see cref="M:System.Array.GetLowerBound(System.Int32)"/>(<see cref="P:System.Array.Rank"/> - 1) returns the lower bound of the last dimension of\r
2544       the current instance.</block>\r
2545                                                         </para>\r
2546                                                 </remarks>\r
2547                                         </Docs>\r
2548                                         <Excluded>1</Excluded>\r
2549                                         <ExcludedLibrary>RuntimeInfrastructure</ExcludedLibrary>\r
2550                                 </Member>\r
2551                                 <Member MemberName="GetUpperBound">\r
2552                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig instance int32 GetUpperBound(int32 dimension)"/>\r
2553                                         <MemberSignature Language="C#" Value="public int GetUpperBound(int dimension);"/>\r
2554                                         <MemberType>Method</MemberType>\r
2555                                         <ReturnValue>\r
2556                                                 <ReturnType>System.Int32</ReturnType>\r
2557                                         </ReturnValue>\r
2558                                         <Parameters>\r
2559                                                 <Parameter Name="dimension" Type="System.Int32"/>\r
2560                                         </Parameters>\r
2561                                         <Docs>\r
2562                                                 <summary>\r
2563                                                         <para>Returns the upper bound of the specified dimension in\r
2564       the current instance.</para>\r
2565                                                 </summary>\r
2566                                                 <param name="dimension">A <see cref="T:System.Int32"/> that contains the zero-based dimension of the current instance whose upper bound is to be determined.</param>\r
2567                                                 <returns>\r
2568                                                         <para>A <see cref="T:System.Int32"/> that contains the upper bound of the specified dimension in the\r
2569    current instance.</para>\r
2570                                                 </returns>\r
2571                                                 <exception cref="T:System.IndexOutOfRangeException">\r
2572                                                         <para>\r
2573                                                                 <paramref name="dimension"/> &lt; 0.</para>\r
2574                                                         <para>-or-</para>\r
2575                                                         <para>\r
2576                                                                 <paramref name="dimension"/> is equal to or greater than the <see cref="P:System.Array.Rank"/> property of the current instance.</para>\r
2577                                                 </exception>\r
2578                                                 <remarks>\r
2579                                                         <para>\r
2580                                                                 <block subset="none" type="note">For example, <see cref="M:System.Array.GetUpperBound(System.Int32)"/>\r
2581 (0) returns the upper bound of the first dimension of the current\r
2582 instance, and <see cref="M:System.Array.GetUpperBound(System.Int32)"/>(<see cref="P:System.Array.Rank"/> - 1) returns the upper bound of the last dimension\r
2583 of the current instance.</block>\r
2584                                                         </para>\r
2585                                                 </remarks>\r
2586                                         </Docs>\r
2587                                         <Excluded>1</Excluded>\r
2588                                         <ExcludedLibrary>RuntimeInfrastructure</ExcludedLibrary>\r
2589                                 </Member>\r
2590                                 <Member MemberName="GetValue">\r
2591                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig instance object GetValue(int32[] indices)"/>\r
2592                                         <MemberSignature Language="C#" Value="public object GetValue(int[] indices);"/>\r
2593                                         <MemberType>Method</MemberType>\r
2594                                         <ReturnValue>\r
2595                                                 <ReturnType>System.Object</ReturnType>\r
2596                                         </ReturnValue>\r
2597                                         <Parameters>\r
2598                                                 <Parameter Name="indices" Type="System.Int32[]"/>\r
2599                                         </Parameters>\r
2600                                         <Docs>\r
2601                                                 <summary>\r
2602                                                         <para>Gets the value at the specified position in the\r
2603       current multidimensional instance.</para>\r
2604                                                 </summary>\r
2605                                                 <param name="indices">A one-dimensional array of <see cref="T:System.Int32"/> objects that contains the indices that specify the position of the element in the current instance whose value to get.</param>\r
2606                                                 <returns>\r
2607                                                         <para>A <see cref="T:System.Object"/> that contains the value at the specified position in the\r
2608    current instance.</para>\r
2609                                                 </returns>\r
2610                                                 <exception cref="T:System.ArgumentNullException">\r
2611                                                         <paramref name="indices"/> is <see langword="null"/>.</exception>\r
2612                                                 <exception cref="T:System.ArgumentException">The number of dimensions in the current instance is not equal to the number of elements in <paramref name="indices"/>.</exception>\r
2613                                                 <exception cref="T:System.IndexOutOfRangeException">\r
2614                                                         <para>At least one element in <paramref name="indices"/> is outside the range of valid indices for the corresponding dimension of the current instance.</para>\r
2615                                                 </exception>\r
2616                                                 <remarks>\r
2617                                                         <para>The number of elements in <paramref name="indices"/> is required to be equal to the number of\r
2618    dimensions in the current instance. All elements in <paramref name="indices"/> collectively specify the position of the\r
2619    desired element in the current instance.</para>\r
2620                                                         <para>\r
2621                                                                 <block subset="none" type="note">Use the <see cref="M:System.Array.GetLowerBound(System.Int32)"/> and\r
2622 <see cref="M:System.Array.GetUpperBound(System.Int32)"/> methods to determine whether any of the values in \r
2623 <paramref name="indices"/> are out of\r
2624 bounds.</block>\r
2625                                                         </para>\r
2626                                                 </remarks>\r
2627                                         </Docs>\r
2628                                         <Excluded>1</Excluded>\r
2629                                         <ExcludedLibrary>ExtendedArray</ExcludedLibrary>\r
2630                                 </Member>\r
2631                                 <Member MemberName="GetValue">\r
2632                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig instance object GetValue(int32 index)"/>\r
2633                                         <MemberSignature Language="C#" Value="public object GetValue(int index);"/>\r
2634                                         <MemberType>Method</MemberType>\r
2635                                         <ReturnValue>\r
2636                                                 <ReturnType>System.Object</ReturnType>\r
2637                                         </ReturnValue>\r
2638                                         <Parameters>\r
2639                                                 <Parameter Name="index" Type="System.Int32"/>\r
2640                                         </Parameters>\r
2641                                         <Docs>\r
2642                                                 <summary>\r
2643                                                         <para> Gets the value at the specified position in the current one-dimensional\r
2644       instance.</para>\r
2645                                                 </summary>\r
2646                                                 <param name="index">A <see cref="T:System.Int32"/> that contains the position of the value to get from the current instance.</param>\r
2647                                                 <returns>\r
2648                                                         <para>A <see cref="T:System.Object"/> that contains the value at the specified position in the current\r
2649    instance.</para>\r
2650                                                 </returns>\r
2651                                                 <exception cref="T:System.ArgumentException">The current instance has more than one dimension.</exception>\r
2652                                                 <exception cref="T:System.IndexOutOfRangeException">\r
2653                                                         <para>\r
2654                                                                 <paramref name="index"/> is outside the range of valid indices for the current instance.</para>\r
2655                                                 </exception>\r
2656                                                 <remarks>\r
2657                                                         <para>\r
2658                                                                 <block subset="none" type="note">Use the <see cref="M:System.Array.GetLowerBound(System.Int32)"/> and\r
2659 <see cref="M:System.Array.GetUpperBound(System.Int32)"/> methods to determine \r
2660    whether <paramref name="index"/> is out of bounds.</block>\r
2661                                                         </para>\r
2662                                                 </remarks>\r
2663                                                 <example>\r
2664                                                         <para>This example demonstrates the <see cref="M:System.Array.GetValue(System.Int32[])"/> method.</para>\r
2665                                                         <code lang="C#">using System;\r
2666 public class ArrayGetValueExample {\r
2667    public static void Main() {\r
2668       String[] strAry = { "one", "two", "three", "four", "five" };\r
2669       Console.Write( "The elements of the array are: " );\r
2670       for( int i = 0; i &lt; strAry.Length; i++ )\r
2671          Console.Write( " '{0}' ", strAry.GetValue( i ) );\r
2672    }\r
2673 }\r
2674    </code>\r
2675                                                         <para>The output is</para>\r
2676                                                         <para>\r
2677                                                                 <c>The elements\r
2678       of the array are: 'one' 'two' 'three' 'four' 'five'</c>\r
2679                                                         </para>\r
2680                                                 </example>\r
2681                                         </Docs>\r
2682                                         <Excluded>0</Excluded>\r
2683                                 </Member>\r
2684                                 <Member MemberName="GetValue">\r
2685                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig instance object GetValue(int32 index1, int32 index2)"/>\r
2686                                         <MemberSignature Language="C#" Value="public object GetValue(int index1, int index2);"/>\r
2687                                         <MemberType>Method</MemberType>\r
2688                                         <ReturnValue>\r
2689                                                 <ReturnType>System.Object</ReturnType>\r
2690                                         </ReturnValue>\r
2691                                         <Parameters>\r
2692                                                 <Parameter Name="index1" Type="System.Int32"/>\r
2693                                                 <Parameter Name="index2" Type="System.Int32"/>\r
2694                                         </Parameters>\r
2695                                         <Docs>\r
2696                                                 <summary>\r
2697                                                         <para>Gets the value at the specified position in the current \r
2698       two-dimensional instance.</para>\r
2699                                                 </summary>\r
2700                                                 <param name="index1">A <see cref="T:System.Int32"/> that contains the first-dimension index of the element in the current instance to get.</param>\r
2701                                                 <param name="index2">A <see cref="T:System.Int32"/> that contains the second-dimension index of the element in the current instance to get.</param>\r
2702                                                 <returns>\r
2703                                                         <para>A <see cref="T:System.Object"/> that contains the value at the specified position in the current \r
2704    instance.</para>\r
2705                                                 </returns>\r
2706                                                 <exception cref="T:System.ArgumentException">The current instance does not have exactly two dimensions.</exception>\r
2707                                                 <exception cref="T:System.IndexOutOfRangeException">At least one of <paramref name="index1"/> or <paramref name="index2"/> is outside the range of valid indexes for the corresponding dimension of the current instance.</exception>\r
2708                                                 <remarks>\r
2709                                                         <para>\r
2710                                                                 <block subset="none" type="note">Use the <see cref="M:System.Array.GetLowerBound(System.Int32)"/> and \r
2711 <see cref="M:System.Array.GetUpperBound(System.Int32)"/> methods to determine\r
2712    whether any of the indices are out of bounds.</block>\r
2713                                                         </para>\r
2714                                                 </remarks>\r
2715                                         </Docs>\r
2716                                         <Excluded>1</Excluded>\r
2717                                         <ExcludedLibrary>ExtendedArray</ExcludedLibrary>\r
2718                                 </Member>\r
2719                                 <Member MemberName="GetValue">\r
2720                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig instance object GetValue(int32 index1, int32 index2, int32 index3)"/>\r
2721                                         <MemberSignature Language="C#" Value="public object GetValue(int index1, int index2, int index3);"/>\r
2722                                         <MemberType>Method</MemberType>\r
2723                                         <ReturnValue>\r
2724                                                 <ReturnType>System.Object</ReturnType>\r
2725                                         </ReturnValue>\r
2726                                         <Parameters>\r
2727                                                 <Parameter Name="index1" Type="System.Int32"/>\r
2728                                                 <Parameter Name="index2" Type="System.Int32"/>\r
2729                                                 <Parameter Name="index3" Type="System.Int32"/>\r
2730                                         </Parameters>\r
2731                                         <Docs>\r
2732                                                 <summary>\r
2733                                                         <para>Gets the value at the specified position in the \r
2734       current three-dimensional instance.</para>\r
2735                                                 </summary>\r
2736                                                 <param name="index1">A <see cref="T:System.Int32"/> that contains the first-dimension index of the element in the current instance to get. </param>\r
2737                                                 <param name="index2">A <see cref="T:System.Int32"/> that contains the second-dimension index of the element in the current instance to get. </param>\r
2738                                                 <param name="index3">A <see cref="T:System.Int32"/> that contains the third-dimension index of the element in the current instance to get. </param>\r
2739                                                 <returns>\r
2740                                                         <para>A <see cref="T:System.Object"/> that contains the value at the specified position in the \r
2741    current instance.</para>\r
2742                                                 </returns>\r
2743                                                 <exception cref="T:System.ArgumentException">The current instance does not have exactly three dimensions.</exception>\r
2744                                                 <exception cref="T:System.IndexOutOfRangeException">\r
2745                                                         <para>At least one of<paramref name="index1"/> or <paramref name="index2"/> or <paramref name="index3"/> is outside the range of valid indexes for the corresponding dimension of the current instance.</para>\r
2746                                                 </exception>\r
2747                                                 <remarks>\r
2748                                                         <para>\r
2749                                                                 <block subset="none" type="note">Use the <see cref="M:System.Array.GetLowerBound(System.Int32)"/> and \r
2750 <see cref="M:System.Array.GetUpperBound(System.Int32)"/> methods to determine\r
2751    whether any of the indices are out of bounds.</block>\r
2752                                                         </para>\r
2753                                                 </remarks>\r
2754                                         </Docs>\r
2755                                         <Excluded>1</Excluded>\r
2756                                         <ExcludedLibrary>ExtendedArray</ExcludedLibrary>\r
2757                                 </Member>\r
2758                                 <Member MemberName="IndexOf">\r
2759                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static int32 IndexOf(class System.Array array, object value, int32 startIndex, int32 count)"/>\r
2760                                         <MemberSignature Language="C#" Value="public static int IndexOf(Array array, object value, int startIndex, int count);"/>\r
2761                                         <MemberType>Method</MemberType>\r
2762                                         <ReturnValue>\r
2763                                                 <ReturnType>System.Int32</ReturnType>\r
2764                                         </ReturnValue>\r
2765                                         <Parameters>\r
2766                                                 <Parameter Name="array" Type="System.Array"/>\r
2767                                                 <Parameter Name="value" Type="System.Object"/>\r
2768                                                 <Parameter Name="startIndex" Type="System.Int32"/>\r
2769                                                 <Parameter Name="count" Type="System.Int32"/>\r
2770                                         </Parameters>\r
2771                                         <Docs>\r
2772                                                 <summary>\r
2773                                                         <para>Searches the specified one-dimensional <see cref="T:System.Array"/>, returning the index of the first\r
2774    occurrence of the specified <see cref="T:System.Object"/> in the specified range.</para>\r
2775                                                 </summary>\r
2776                                                 <param name="array">A one-dimensional <see cref="T:System.Array"/> to search.</param>\r
2777                                                 <param name="value">A <see cref="T:System.Object"/> to locate in <paramref name="array"/>.</param>\r
2778                                                 <param name="startIndex">A <see cref="T:System.Int32"/> that contains the index at which searching starts. </param>\r
2779                                                 <param name="count">A <see cref="T:System.Int32"/> that contains the number of elements to search, beginning with <paramref name="startIndex"/>.</param>\r
2780                                                 <returns>\r
2781                                                         <para>A <see cref="T:System.Int32"/> containing the index of the first occurrence of <paramref name="value"/> in\r
2782 <paramref name="array"/>, within the range <paramref name="startIndex"/> through <paramref name="startIndex"/> \r
2783 + <paramref name="count"/>- 1, if found; otherwise,\r
2784 <paramref name="array"/>.GetLowerBound(0) - 1.\r
2785 <block subset="none" type="note"> For a vector, if <paramref name="value"/> is not \r
2786 found, the return value will be -1. This provides the caller with a standard code for the failed search.</block>\r
2787                                                         </para>\r
2788                                                 </returns>\r
2789                                                 <exception cref="T:System.ArgumentNullException">\r
2790                                                         <para>\r
2791                                                                 <paramref name="array"/> is <see langword="null"/>.</para>\r
2792                                                 </exception>\r
2793                                                 <exception cref="T:System.ArgumentOutOfRangeException">\r
2794                                                         <para>\r
2795                                                                 <paramref name="startIndex"/> is less than <paramref name="array"/>\r
2796                                                                 <see langword=".GetLowerBound(0)"/>.</para>\r
2797                                                         <para>-or-</para>\r
2798                                                         <para>\r
2799                                                                 <paramref name="count"/> is less than zero.</para>\r
2800                                                         <para>-or-</para>\r
2801                                                         <para>\r
2802                                                                 <paramref name="startIndex"/> + <paramref name="count"/> is greater than <paramref name="array"/>\r
2803                                                                 <see langword=".GetLowerBound(0)"/> + <paramref name="array"/>\r
2804                                                                 <see langword=".Length"/>.</para>\r
2805                                                 </exception>\r
2806                                                 <exception cref="T:System.RankException">\r
2807                                                         <paramref name="array"/> has more than one dimension.</exception>\r
2808                                                 <remarks>\r
2809                                                         <para>The elements are compared using <see cref="M:System.Object.Equals(System.Object)"/>.</para>\r
2810                                                 </remarks>\r
2811                                         </Docs>\r
2812                                         <Excluded>0</Excluded>\r
2813                                 </Member>\r
2814                                 <Member MemberName="IndexOf">\r
2815                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static int32 IndexOf(class System.Array array, object value, int32 startIndex)"/>\r
2816                                         <MemberSignature Language="C#" Value="public static int IndexOf(Array array, object value, int startIndex);"/>\r
2817                                         <MemberType>Method</MemberType>\r
2818                                         <ReturnValue>\r
2819                                                 <ReturnType>System.Int32</ReturnType>\r
2820                                         </ReturnValue>\r
2821                                         <Parameters>\r
2822                                                 <Parameter Name="array" Type="System.Array"/>\r
2823                                                 <Parameter Name="value" Type="System.Object"/>\r
2824                                                 <Parameter Name="startIndex" Type="System.Int32"/>\r
2825                                         </Parameters>\r
2826                                         <Docs>\r
2827                                                 <summary>\r
2828                                                         <para>Searches the specified one-dimensional <see cref="T:System.Array"/>, returning the index of the first\r
2829    occurrence of the specified <see cref="T:System.Object"/> between the specified index and the last element.</para>\r
2830                                                 </summary>\r
2831                                                 <param name="array">A one-dimensional <see cref="T:System.Array"/> to search.</param>\r
2832                                                 <param name="value">A <see cref="T:System.Object"/> to locate in <paramref name="array"/>.</param>\r
2833                                                 <param name="startIndex">A <see cref="T:System.Int32"/> that contains the index at which searching starts.</param>\r
2834                                                 <returns>\r
2835                                                         <para>A <see cref="T:System.Int32"/> containing the index of the first occurrence of <paramref name="value"/> in\r
2836 <paramref name="array"/>, within the range <paramref name="startIndex"/> through the last element of \r
2837 <paramref name="array"/>, if found; otherwise, \r
2838 <paramref name="array"/>.GetLowerBound(0) - 1. \r
2839 <block subset="none" type="note"> For a vector, if <paramref name="value"/> is not \r
2840    found, the return value will be -1. This provides the caller with a standard code for the failed search.</block>\r
2841                                                         </para>\r
2842                                                 </returns>\r
2843                                                 <exception cref="T:System.ArgumentNullException">\r
2844                                                         <para>\r
2845                                                                 <paramref name="array"/> is <see langword="null"/>. </para>\r
2846                                                 </exception>\r
2847                                                 <exception cref="T:System.ArgumentOutOfRangeException">\r
2848                                                         <para>\r
2849                                                                 <paramref name="startIndex"/> is less than <paramref name="array"/>\r
2850                                                                 <see langword=".GetLowerBound(0)"/> or greater than <paramref name="array"/>\r
2851                                                                 <see langword=".GetLowerBound(0)"/> + <paramref name="array"/>\r
2852                                                                 <see langword=".Length"/>.</para>\r
2853                                                 </exception>\r
2854                                                 <exception cref="T:System.RankException">\r
2855                                                         <paramref name="array"/> has more than one dimension.</exception>\r
2856                                                 <remarks>\r
2857                                                         <para>This version of <see cref="M:System.Array.IndexOf(System.Array,System.Object)"/> is equivalent to <see cref="M:System.Array.IndexOf(System.Array,System.Object)"/> (<paramref name="array"/>, <paramref name="value"/> ,\r
2858 <paramref name="startIndex"/>, (<paramref name="array"/>.Length - <paramref name="startIndex"/>+<paramref name="array"/>.GetLowerBound(0))).</para>\r
2859                                                         <para>The elements are compared using <see cref="M:System.Object.Equals(System.Object)"/>.</para>\r
2860                                                 </remarks>\r
2861                                         </Docs>\r
2862                                         <Excluded>0</Excluded>\r
2863                                 </Member>\r
2864                                 <Member MemberName="IndexOf">\r
2865                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static int32 IndexOf(class System.Array array, object value)"/>\r
2866                                         <MemberSignature Language="C#" Value="public static int IndexOf(Array array, object value);"/>\r
2867                                         <MemberType>Method</MemberType>\r
2868                                         <ReturnValue>\r
2869                                                 <ReturnType>System.Int32</ReturnType>\r
2870                                         </ReturnValue>\r
2871                                         <Parameters>\r
2872                                                 <Parameter Name="array" Type="System.Array"/>\r
2873                                                 <Parameter Name="value" Type="System.Object"/>\r
2874                                         </Parameters>\r
2875                                         <Docs>\r
2876                                                 <summary>\r
2877                                                         <para>Searches the specified one-dimensional <see cref="T:System.Array"/>, returning the\r
2878    index of the first occurrence of the specified <see cref="T:System.Object"/>.</para>\r
2879                                                 </summary>\r
2880                                                 <param name="array">A one-dimensional <see cref="T:System.Array"/> to search.</param>\r
2881                                                 <param name="value">A <see cref="T:System.Object"/> to locate in <paramref name="array"/>.</param>\r
2882                                                 <returns>\r
2883                                                         <para>A <see cref="T:System.Int32"/> containing the index of the first occurrence of <paramref name="value"/> in\r
2884 <paramref name="array"/>, if found; otherwise, <paramref name="array"/>.GetLowerBound(0) - 1. <block subset="none" type="note"> For a vector, if <paramref name="value"/> is not \r
2885    found, the return value will be -1. This provides the caller with a standard code for a failed search.</block>\r
2886                                                         </para>\r
2887                                                 </returns>\r
2888                                                 <exception cref="T:System.ArgumentNullException">\r
2889                                                         <paramref name="array"/> is <see langword="null"/>.</exception>\r
2890                                                 <exception cref="T:System.RankException">\r
2891                                                         <paramref name="array"/> has more than one dimension.</exception>\r
2892                                                 <remarks>\r
2893                                                         <para>This version of <see cref="M:System.Array.IndexOf(System.Array,System.Object)"/> is equivalent to <see cref="M:System.Array.IndexOf(System.Array,System.Object)"/>(<paramref name="array"/>, <paramref name="value"/>, <paramref name="array"/>.GetLowerBound(0),<paramref name="array"/>.Length).</para>\r
2894                                                         <para>The elements are compared using <see cref="M:System.Object.Equals(System.Object)"/>.</para>\r
2895                                                 </remarks>\r
2896                                                 <example>\r
2897                                                         <para>The following example demonstrates the <see cref="M:System.Array.IndexOf(System.Array,System.Object)"/> \r
2898 method.</para>\r
2899                                                         <code lang="C#">using System;\r
2900 public class ArrayIndexOfExample {\r
2901    public static void Main() {\r
2902       int[] intAry = { 0, 1, 2, 0, 1 };\r
2903       Console.Write( "The values of the array are: " );\r
2904       foreach( int i in intAry )\r
2905          Console.Write( "{0,5}", i );\r
2906       Console.WriteLine();\r
2907       int j = Array.IndexOf( intAry, 1 );\r
2908       Console.WriteLine( "The first occurrence of 1 is at index {0}", j );\r
2909    }\r
2910 }\r
2911 </code>\r
2912                                                         <para> The output is</para>\r
2913                                                         <c>\r
2914                                                                 <para>The values of the array are: 0 1 2 0 1</para>\r
2915                                                                 <para>The first occurrence of 1 is at index 1</para>\r
2916                                                         </c>\r
2917                                                 </example>\r
2918                                         </Docs>\r
2919                                         <Excluded>0</Excluded>\r
2920                                 </Member>\r
2921                                 <Member MemberName="IndexOf&lt;T&gt;">\r
2922                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static int32 IndexOf&lt;T&gt;(!!0[] array, !!0 value, int32 startIndex, int32 count)"/>\r
2923                                         <MemberSignature Language="C#" Value="public static int IndexOf&lt;T&gt;(T[] array, T value, int startIndex, int count)"/>\r
2924                                         <MemberType>Method</MemberType>\r
2925                                         <ReturnValue>\r
2926                                                 <ReturnType>System.Int32</ReturnType>\r
2927                                         </ReturnValue>\r
2928                                         <Parameters>\r
2929                                                 <Parameter Name="array" Type="T[]"/>\r
2930                                                 <Parameter Name="value" Type="T"/>\r
2931                                                 <Parameter Name="startIndex" Type="System.Int32"/>\r
2932                                                 <Parameter Name="count" Type="System.Int32"/>\r
2933                                         </Parameters>\r
2934                                         <Docs>\r
2935                                                 <summary>\r
2936                                                         <para>Searches for the specified value and returns the index of the first occurrence within the range of elements in the array starting at the specified index and continuing for, at most, the specified number of elements.</para>\r
2937                                                 </summary>\r
2938                                                 <param name="array">The array to search.</param>\r
2939                                                 <param name="value">The value to locate.</param>\r
2940                                                 <param name="startIndex">The zero-based starting index of the search.</param>\r
2941                                                 <param name="count">The number of consecutive elements to search.</param>\r
2942                                                 <returns>\r
2943                                                         <para>The zero-based index of the first occurrence of <paramref name="value"/> within the range of elements in \r
2944 <paramref name="array"/> that starts at \r
2945 <paramref name="startIndex"/> and contains the number of elements specified in <paramref name="count"/>\r
2946 , if found; otherwise, -1.</para>\r
2947                                                 </returns>\r
2948                                                 <exception cref="T:System.ArgumentNullException">\r
2949                                                         <para>\r
2950                                                                 <paramref name="array"/> is <see langword="null"/>.</para>\r
2951                                                 </exception>\r
2952                                                 <exception cref="T:System.ArgumentOutOfRangeException">\r
2953                                                         <para>\r
2954                                                                 <paramref name="startIndex"/> is less than zero.</para>\r
2955                                                         <para>-or-</para>\r
2956                                                         <para>\r
2957                                                                 <paramref name="count"/> is less than zero.</para>\r
2958                                                         <para>-or-</para>\r
2959                                                         <para>\r
2960                                                                 <paramref name="startIndex"/> + <paramref name="count"/> is greater than <see cref="P:System.Array.Length"/>.</para>\r
2961                                                 </exception>\r
2962                                                 <remarks>\r
2963                                                         <para>The elements are compared using <see cref="M:System.Object.Equals(System.Object)"/>. The array is searched forward starting at <paramref name="startIndex"/> and ending at <paramref name="startIndex"/> + <paramref name="count"/> - 1. Processing is stopped when the predicate returns <see langword="true"/>.</para>\r
2964                                                 </remarks>\r
2965                                         </Docs>\r
2966                                         <Excluded>0</Excluded>\r
2967                                 </Member>\r
2968                                 <Member MemberName="IndexOf&lt;T&gt;">\r
2969                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static int32 IndexOf&lt;T&gt;(!!0[] array, !!0 value, int32 startIndex)"/>\r
2970                                         <MemberSignature Language="C#" Value="public static int IndexOf&lt;T&gt;(T[] array, T value, int startIndex)"/>\r
2971                                         <MemberType>Method</MemberType>\r
2972                                         <ReturnValue>\r
2973                                                 <ReturnType>System.Int32</ReturnType>\r
2974                                         </ReturnValue>\r
2975                                         <Parameters>\r
2976                                                 <Parameter Name="array" Type="T[]"/>\r
2977                                                 <Parameter Name="value" Type="T"/>\r
2978                                                 <Parameter Name="startIndex" Type="System.Int32"/>\r
2979                                         </Parameters>\r
2980                                         <Docs>\r
2981                                                 <summary>\r
2982                                                         <para>Searches the specified array, returning the index of the first occurrence in the specified array starting at the specified index and including the last element.</para>\r
2983                                                 </summary>\r
2984                                                 <param name="array">The array to search.</param>\r
2985                                                 <param name="value">The value to locate.</param>\r
2986                                                 <param name="startIndex">The zero-based starting index of the search.</param>\r
2987                                                 <returns>\r
2988                                                         <para>The zero-based index of the first occurrence of <paramref name="value"/> within the range of elements in \r
2989 <paramref name="array"/> that extends from  \r
2990 <paramref name="startIndex"/> to the last element, if found; otherwise, -1. If <paramref name="startIndex"/> is equal to the length of the array, -1 is returned.</para>\r
2991                                                 </returns>\r
2992                                                 <exception cref="T:System.ArgumentNullException">\r
2993                                                         <para>\r
2994                                                                 <paramref name="array"/> is <see langword="null"/>.</para>\r
2995                                                 </exception>\r
2996                                                 <exception cref="T:System.ArgumentOutOfRangeException">\r
2997                                                         <para>\r
2998                                                                 <paramref name="startIndex"/> is less than zero or greater than <paramref name="array"/>\r
2999                                                                 <see langword=".Length"/>.</para>\r
3000                                                 </exception>\r
3001                                                 <remarks>\r
3002                                                         <para>The elements are compared using <see cref="M:System.Object.Equals(System.Object)"/>. The array is searched forward starting at <paramref name="startIndex"/> and ending at the last element. Processing is stopped when the predicate returns <see langword="true"/>. </para>\r
3003                                                 </remarks>\r
3004                                         </Docs>\r
3005                                         <Excluded>0</Excluded>\r
3006                                 </Member>\r
3007                                 <Member MemberName="IndexOf&lt;T&gt;">\r
3008                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static int32 IndexOf&lt;T&gt;(!!0[] array, !!0 value)"/>\r
3009                                         <MemberSignature Language="C#" Value="public static int IndexOf&lt;T&gt;(T[] array, T value)"/>\r
3010                                         <MemberType>Method</MemberType>\r
3011                                         <ReturnValue>\r
3012                                                 <ReturnType>System.Int32</ReturnType>\r
3013                                         </ReturnValue>\r
3014                                         <Parameters>\r
3015                                                 <Parameter Name="array" Type="T[]"/>\r
3016                                                 <Parameter Name="value" Type="T"/>\r
3017                                         </Parameters>\r
3018                                         <Docs>\r
3019                                                 <summary>\r
3020                                                         <para>Searches the specified array, returning the index of the first occurrence of the specified value.</para>\r
3021                                                 </summary>\r
3022                                                 <param name="array">The array to search.</param>\r
3023                                                 <param name="value">The value to locate.</param>\r
3024                                                 <returns>\r
3025                                                         <para>The zero-based index of the first occurrence of <paramref name="value"/> in \r
3026 <paramref name="array"/>, if found; otherwise, - 1.</para>\r
3027                                                 </returns>\r
3028                                                 <exception cref="T:System.ArgumentNullException">\r
3029                                                         <para>\r
3030                                                                 <paramref name="array"/> is <see langword="null"/>.</para>\r
3031                                                 </exception>\r
3032                                                 <remarks>\r
3033                                                         <para>The elements are compared using <see cref="M:System.Object.Equals(System.Object)"/>. The array is searched forward starting at the first element and ending at the last element.  Processing is stopped when the predicate returns <see langword="true"/>. </para>\r
3034                                                 </remarks>\r
3035                                         </Docs>\r
3036                                         <Excluded>0</Excluded>\r
3037                                 </Member>\r
3038                                 <Member MemberName="Initialize">\r
3039                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Initialize()"/>\r
3040                                         <MemberSignature Language="C#" Value="public void Initialize();"/>\r
3041                                         <MemberType>Method</MemberType>\r
3042                                         <ReturnValue>\r
3043                                                 <ReturnType>System.Void</ReturnType>\r
3044                                         </ReturnValue>\r
3045                                         <Parameters/>\r
3046                                         <Docs>\r
3047                                                 <summary>\r
3048                                                         <para>Initializes every element of the current instance of\r
3049       value-type objects by calling the\r
3050       default constructor of that value type.</para>\r
3051                                                 </summary>\r
3052                                                 <remarks>\r
3053                                                         <para> This method cannot be used on reference-type arrays.</para>\r
3054                                                         <para>If the current instance is not a value-type <see cref="T:System.Array"/> or if the value type does not have a default\r
3055    constructor, the current instance is not modified.</para>\r
3056                                                         <para>The current instance can have any lower bound and any number of dimensions.</para>\r
3057                                                         <para>\r
3058                                                                 <block subset="none" type="note">This method can be used only\r
3059    on value types that have constructors. </block>\r
3060                                                         </para>\r
3061                                                 </remarks>\r
3062                                         </Docs>\r
3063                                         <Excluded>1</Excluded>\r
3064                                         <ExcludedLibrary>RuntimeInfrastructure</ExcludedLibrary>\r
3065                                 </Member>\r
3066                                 <Member MemberName="IsFixedSize">\r
3067                                         <MemberSignature Language="ILAsm" Value=".property public bool IsFixedSize { public hidebysig virtual abstract specialname bool get_IsFixedSize() }"/>\r
3068                                         <MemberSignature Language="C#" Value="public bool IsFixedSize { get; }"/>\r
3069                                         <MemberType>Property</MemberType>\r
3070                                         <ReturnValue>\r
3071                                                 <ReturnType>System.Boolean</ReturnType>\r
3072                                         </ReturnValue>\r
3073                                         <Parameters/>\r
3074                                         <Docs>\r
3075                                                 <summary>Implemented to support the <see cref="T:System.Collections.IList"/> interface. [Note: For more information, see <see cref="M:System.Collections.IList.IsFixedSize"/>.]</summary>\r
3076                                         </Docs>\r
3077                                         <Excluded>0</Excluded>\r
3078                                 </Member>\r
3079                                 <Member MemberName="IsReadOnly">\r
3080                                         <MemberSignature Language="ILAsm" Value=".property public bool IsReadOnly { public hidebysig virtual abstract specialname bool get_IsReadOnly() }"/>\r
3081                                         <MemberSignature Language="C#" Value="public bool IsReadOnly { get; }"/>\r
3082                                         <MemberType>Property</MemberType>\r
3083                                         <ReturnValue>\r
3084                                                 <ReturnType>System.Boolean</ReturnType>\r
3085                                         </ReturnValue>\r
3086                                         <Parameters/>\r
3087                                         <Docs>\r
3088                                                 <summary>Implemented to support the <see cref="T:System.Collections.IList"/> interface. [Note: For more information, see <see cref="M:System.Collections.IList.IsReadOnly"/>.]</summary>\r
3089                                         </Docs>\r
3090                                         <Excluded>0</Excluded>\r
3091                                 </Member>\r
3092                                 <Member MemberName="IsSynchronized">\r
3093                                         <MemberSignature Language="ILAsm" Value="property public bool IsSynchronized { public hidebysig virtual abstract specialname bool get_IsSynchronized() }"/>\r
3094                                         <MemberSignature Language="C#" Value="public bool IsSynchronized { get; }"/>\r
3095                                         <MemberType>Property</MemberType>\r
3096                                         <ReturnValue>\r
3097                                                 <ReturnType>System.Boolean</ReturnType>\r
3098                                         </ReturnValue>\r
3099                                         <Parameters/>\r
3100                                         <Docs>\r
3101                                                 <summary>Implemented to support the <see cref="T:System.Collections.ICollection"/> interface. [Note: For more information, see <see cref="M:System.Collections.ICollection.IsSynchronized"/>.]</summary>\r
3102                                         </Docs>\r
3103                                         <Excluded>0</Excluded>\r
3104                                 </Member>\r
3105                                 <Member MemberName="LastIndexOf">\r
3106                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static int32 LastIndexOf(class System.Array array, object value, int32 startIndex, int32 count)"/>\r
3107                                         <MemberSignature Language="C#" Value="public static int LastIndexOf(Array array, object value, int startIndex, int count);"/>\r
3108                                         <MemberType>Method</MemberType>\r
3109                                         <ReturnValue>\r
3110                                                 <ReturnType>System.Int32</ReturnType>\r
3111                                         </ReturnValue>\r
3112                                         <Parameters>\r
3113                                                 <Parameter Name="array" Type="System.Array"/>\r
3114                                                 <Parameter Name="value" Type="System.Object"/>\r
3115                                                 <Parameter Name="startIndex" Type="System.Int32"/>\r
3116                                                 <Parameter Name="count" Type="System.Int32"/>\r
3117                                         </Parameters>\r
3118                                         <Docs>\r
3119                                                 <summary>\r
3120                                                         <para> Searches the specified one-dimensional <see cref="T:System.Array"/>, returning the index of the last\r
3121    occurrence of the specified <see cref="T:System.Object"/> in the specified range.</para>\r
3122                                                 </summary>\r
3123                                                 <param name="array">A one-dimensional <see cref="T:System.Array"/> to search.</param>\r
3124                                                 <param name="value">A <see cref="T:System.Object"/> to locate in <paramref name="array"/>.</param>\r
3125                                                 <param name="startIndex">A <see cref="T:System.Int32"/> that contains the index at which searching starts. </param>\r
3126                                                 <param name="count">A <see cref="T:System.Int32"/> that contains the number of elements to search, beginning with <paramref name="startIndex"/> . </param>\r
3127                                                 <returns>\r
3128                                                         <para>A <see cref="T:System.Int32"/> containing the index of the last occurrence of <paramref name="value"/> in \r
3129 <paramref name="array"/>, within the range <paramref name="startIndex"/> through \r
3130 <paramref name="startIndex"/> - <paramref name="count"/> + 1, if found; otherwise, \r
3131 <paramref name="array"/>.GetLowerBound(0) - 1. \r
3132 <block subset="none" type="note"> For a vector, if <paramref name="value"/> is not \r
3133    found, the return value will be -1. This provides the caller with a standard code for the failed search.</block>\r
3134                                                         </para>\r
3135                                                 </returns>\r
3136                                                 <exception cref="T:System.ArgumentNullException">\r
3137                                                         <para>\r
3138                                                                 <paramref name="array"/> is <see langword="null"/>.</para>\r
3139                                                 </exception>\r
3140                                                 <exception cref="T:System.ArgumentOutOfRangeException">\r
3141                                                         <para>\r
3142                                                                 <paramref name="startIndex"/> is outside the range of valid indices for <paramref name="array"/>.</para>\r
3143                                                         <para>-or-</para>\r
3144                                                         <para>\r
3145                                                                 <paramref name="count"/> &lt; 0.</para>\r
3146                                                         <para>-or-</para>\r
3147                                                         <para>\r
3148                                                                 <paramref name="count"/> is greater than <paramref name="startIndex"/> + 1.</para>\r
3149                                                 </exception>\r
3150                                                 <exception cref="T:System.RankException">\r
3151                                                         <paramref name="array"/> has more than one dimension.</exception>\r
3152                                                 <remarks>\r
3153                                                         <para>The elements are compared using <see cref="M:System.Object.Equals(System.Object)"/>.</para>\r
3154                                                 </remarks>\r
3155                                         </Docs>\r
3156                                         <Excluded>0</Excluded>\r
3157                                 </Member>\r
3158                                 <Member MemberName="LastIndexOf">\r
3159                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static int32 LastIndexOf(class System.Array array, object value, int32 startIndex)"/>\r
3160                                         <MemberSignature Language="C#" Value="public static int LastIndexOf(Array array, object value, int startIndex);"/>\r
3161                                         <MemberType>Method</MemberType>\r
3162                                         <ReturnValue>\r
3163                                                 <ReturnType>System.Int32</ReturnType>\r
3164                                         </ReturnValue>\r
3165                                         <Parameters>\r
3166                                                 <Parameter Name="array" Type="System.Array"/>\r
3167                                                 <Parameter Name="value" Type="System.Object"/>\r
3168                                                 <Parameter Name="startIndex" Type="System.Int32"/>\r
3169                                         </Parameters>\r
3170                                         <Docs>\r
3171                                                 <summary>\r
3172                                                         <para> Searches the specified one-dimensional <see cref="T:System.Array"/>, returning the index of the last\r
3173    occurrence of the specified <see cref="T:System.Object"/> between the specified index and the first element.</para>\r
3174                                                 </summary>\r
3175                                                 <param name="array">A one-dimensional <see cref="T:System.Array"/> to search.</param>\r
3176                                                 <param name="value">A <see cref="T:System.Object"/> to locate in <paramref name="array"/>.</param>\r
3177                                                 <param name="startIndex">A <see cref="T:System.Int32"/> that contains the index at which searching starts.</param>\r
3178                                                 <returns>\r
3179                                                         <para>A <see cref="T:System.Int32"/> containing the index of the last occurrence of <paramref name="value"/> in the range\r
3180 <paramref name="startIndex"/> through the lower bound of <paramref name="array"/>, if found; otherwise, \r
3181 <paramref name="array"/>.GetLowerBound(0) - 1. <block subset="none" type="note"> For a vector, if <paramref name="value"/> is not found, the return value will\r
3182    be -1. This provides the caller with a standard code for the failed\r
3183    search.</block>\r
3184                                                         </para>\r
3185                                                 </returns>\r
3186                                                 <exception cref="T:System.ArgumentNullException">\r
3187                                                         <para>\r
3188                                                                 <paramref name="array"/> is <see langword="null"/>.</para>\r
3189                                                 </exception>\r
3190                                                 <exception cref="T:System.ArgumentOutOfRangeException">\r
3191                                                         <para>\r
3192                                                                 <paramref name="startIndex"/> is outside the range of valid indices for <paramref name="array"/>.</para>\r
3193                                                 </exception>\r
3194                                                 <exception cref="T:System.RankException">\r
3195                                                         <paramref name="array"/> has more than one dimension.</exception>\r
3196                                                 <remarks>\r
3197                                                         <para>This version of <see cref="M:System.Array.LastIndexOf(System.Array,System.Object)"/> is equivalent to <see cref="M:System.Array.LastIndexOf(System.Array,System.Object)"/>( <paramref name="array"/>, <paramref name="value"/>, <paramref name="startIndex"/>,<paramref name="startIndex"/>+ 1 -<paramref name="array"/>.GetLowerBound(0)).</para>\r
3198                                                         <para>The elements are compared using <see cref="M:System.Object.Equals(System.Object)"/>.</para>\r
3199                                                 </remarks>\r
3200                                         </Docs>\r
3201                                         <Excluded>0</Excluded>\r
3202                                 </Member>\r
3203                                 <Member MemberName="LastIndexOf">\r
3204                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static int32 LastIndexOf(class System.Array array, object value)"/>\r
3205                                         <MemberSignature Language="C#" Value="public static int LastIndexOf(Array array, object value);"/>\r
3206                                         <MemberType>Method</MemberType>\r
3207                                         <ReturnValue>\r
3208                                                 <ReturnType>System.Int32</ReturnType>\r
3209                                         </ReturnValue>\r
3210                                         <Parameters>\r
3211                                                 <Parameter Name="array" Type="System.Array"/>\r
3212                                                 <Parameter Name="value" Type="System.Object"/>\r
3213                                         </Parameters>\r
3214                                         <Docs>\r
3215                                                 <summary>\r
3216                                                         <para> Searches the specified one-dimensional <see cref="T:System.Array"/>, returning the index of the last\r
3217    occurrence of the specified <see cref="T:System.Object"/>.</para>\r
3218                                                 </summary>\r
3219                                                 <param name="array">A one-dimensional <see cref="T:System.Array"/> to search.</param>\r
3220                                                 <param name="value">A <see cref="T:System.Object"/> to locate in <paramref name="array"/>.</param>\r
3221                                                 <returns>\r
3222                                                         <para>A <see cref="T:System.Int32"/> containing the index of the last occurrence in <paramref name="array"/> of\r
3223 <paramref name="value"/>, if found; otherwise, \r
3224 <paramref name="array"/>.GetLowerBound(0) - 1. \r
3225 <block subset="none" type="note"> For a vector, if <paramref name="value"/> is not \r
3226    found, the return value will be -1. This provides the caller with a standard code for the failed search.</block>\r
3227                                                         </para>\r
3228                                                 </returns>\r
3229                                                 <exception cref="T:System.ArgumentNullException">\r
3230                                                         <paramref name="array"/> is <see langword="null"/> . </exception>\r
3231                                                 <exception cref="T:System.RankException">\r
3232                                                         <paramref name="array"/> has more than one dimension.</exception>\r
3233                                                 <remarks>\r
3234                                                         <para>This version of <see cref="M:System.Array.LastIndexOf(System.Array,System.Object)"/> is equivalent to <see cref="M:System.Array.LastIndexOf(System.Array,System.Object)"/>(<paramref name="array"/>, <paramref name="value"/>, (<paramref name="array"/>.GetLowerBound(0) + <paramref name="array"/>.Length - 1), <paramref name="array"/>.Length).</para>\r
3235                                                         <para>The elements are compared using <see cref="M:System.Object.Equals(System.Object)"/>.</para>\r
3236                                                 </remarks>\r
3237                                                 <example>\r
3238                                                         <para>The following example demonstrates the <see cref="M:System.Array.LastIndexOf(System.Array,System.Object)"/> method.</para>\r
3239                                                         <code lang="C#">using System;\r
3240 \r
3241 public class ArrayLastIndexOfExample {\r
3242 \r
3243    public static void Main() {\r
3244       int[] intAry = { 0, 1, 2, 0, 1 };\r
3245       Console.Write( "The values of the array are: ");\r
3246       foreach( int i in intAry )\r
3247          Console.Write( "{0,5}", i );\r
3248       Console.WriteLine();\r
3249       int j = Array.LastIndexOf( intAry, 1 );\r
3250       Console.WriteLine( "The last occurrence of 1 is at index {0}", j );\r
3251    }\r
3252 }\r
3253 </code>\r
3254                                                         <para> The output is</para>\r
3255                                                         <c>\r
3256                                                                 <para>The values of the array are: 0 1 2 0 1</para>\r
3257                                                                 <para>The last occurrence of 1 is at index 4</para>\r
3258                                                         </c>\r
3259                                                 </example>\r
3260                                         </Docs>\r
3261                                         <Excluded>0</Excluded>\r
3262                                 </Member>\r
3263                                 <Member MemberName="LastIndexOf&lt;T&gt;">\r
3264                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static int32 LastIndexOf&lt;T&gt;(!!0[] array, !!0 value, int32 startIndex, int32 count)"/>\r
3265                                         <MemberSignature Language="C#" Value="public static int LastIndexOf&lt;T&gt;(T[] array, T value, int startIndex, int count)"/>\r
3266                                         <MemberType>Method</MemberType>\r
3267                                         <ReturnValue>\r
3268                                                 <ReturnType>System.Int32</ReturnType>\r
3269                                         </ReturnValue>\r
3270                                         <Parameters>\r
3271                                                 <Parameter Name="array" Type="T[]"/>\r
3272                                                 <Parameter Name="value" Type="T"/>\r
3273                                                 <Parameter Name="startIndex" Type="System.Int32"/>\r
3274                                                 <Parameter Name="count" Type="System.Int32"/>\r
3275                                         </Parameters>\r
3276                                         <Docs>\r
3277                                                 <summary>\r
3278                                                         <para>Searches for the specified value and returns the index of the last occurrence within the range of elements in the array starting at the specified index and continuing backwards for, at most,  the specified number of elements.</para>\r
3279                                                 </summary>\r
3280                                                 <param name="array">The array to search.</param>\r
3281                                                 <param name="value">The value to locate.</param>\r
3282                                                 <param name="startIndex">The zero-based starting index of the search.</param>\r
3283                                                 <param name="count">The number of consecutive elements to search.</param>\r
3284                                                 <returns>\r
3285                                                         <para>The zero-based index of the last occurrence of <paramref name="value"/> within the range of elements in \r
3286 <paramref name="array"/> that ends at \r
3287 <paramref name="startIndex"/> and contains the number of elements specified in <paramref name="count"/>\r
3288 , if found; otherwise, -1.</para>\r
3289                                                 </returns>\r
3290                                                 <exception cref="T:System.ArgumentNullException">\r
3291                                                         <para>\r
3292                                                                 <paramref name="array"/> is <see langword="null"/>.</para>\r
3293                                                 </exception>\r
3294                                                 <exception cref="T:System.ArgumentOutOfRangeException">\r
3295                                                         <para>\r
3296                                                                 <paramref name="startIndex"/> is outside the range of valid indices for <paramref name="array"/>.</para>\r
3297                                                         <para>-or-</para>\r
3298                                                         <para>\r
3299                                                                 <paramref name="count"/> is less than zero.</para>\r
3300                                                         <para>-or-</para>\r
3301                                                         <para>\r
3302                                                                 <paramref name="count"/> is greater than <paramref name="startIndex"/> + 1.</para>\r
3303                                                 </exception>\r
3304                                                 <remarks>\r
3305                                                         <para>The elements are compared using <see cref="M:System.Object.Equals(System.Object)"/>. The array is searched backward starting at <paramref name="startIndex"/> and going for count elements. Processing is stopped when the predicate returns <see langword="true"/>.</para>\r
3306                                                 </remarks>\r
3307                                         </Docs>\r
3308                                         <Excluded>0</Excluded>\r
3309                                 </Member>\r
3310                                 <Member MemberName="LastIndexOf&lt;T&gt;">\r
3311                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static int32 LastIndexOf&lt;T&gt;(!!0[] array, !!0 value, int32 startIndex)"/>\r
3312                                         <MemberSignature Language="C#" Value="public static int LastIndexOf&lt;T&gt;(T[] array, T value, int startIndex)"/>\r
3313                                         <MemberType>Method</MemberType>\r
3314                                         <ReturnValue>\r
3315                                                 <ReturnType>System.Int32</ReturnType>\r
3316                                         </ReturnValue>\r
3317                                         <Parameters>\r
3318                                                 <Parameter Name="array" Type="T[]"/>\r
3319                                                 <Parameter Name="value" Type="T"/>\r
3320                                                 <Parameter Name="startIndex" Type="System.Int32"/>\r
3321                                         </Parameters>\r
3322                                         <Docs>\r
3323                                                 <summary>\r
3324                                                         <para>Searches the specified array backwards, returning the index of the last occurrence of the specified array, starting at the specified index.</para>\r
3325                                                 </summary>\r
3326                                                 <param name="array">The array to search.</param>\r
3327                                                 <param name="value">The value to locate.</param>\r
3328                                                 <param name="startIndex">The zero-based starting index of the search.</param>\r
3329                                                 <returns>\r
3330                                                         <para>The zero-based index of the last occurrence of <paramref name="value"/> within the range of elements in \r
3331 <paramref name="array"/> that extends from  \r
3332 <paramref name="startIndex"/> to the first element, if found; otherwise, -1.</para>\r
3333                                                 </returns>\r
3334                                                 <exception cref="T:System.ArgumentNullException">\r
3335                                                         <para>\r
3336                                                                 <paramref name="array"/> is <see langword="null"/>.</para>\r
3337                                                 </exception>\r
3338                                                 <exception cref="T:System.ArgumentOutOfRangeException">\r
3339                                                         <para>\r
3340                                                                 <paramref name="startIndex"/> is outside the range of valid indices for <paramref name="array"/>.</para>\r
3341                                                 </exception>\r
3342                                                 <remarks>\r
3343                                                         <para>The elements are compared using <see cref="M:System.Object.Equals(System.Object)"/>. The array is searched backward starting at <paramref name="startIndex"/> and ending at the first element. Processing is stopped when the predicate returns <see langword="true"/>.</para>\r
3344                                                 </remarks>\r
3345                                         </Docs>\r
3346                                         <Excluded>0</Excluded>\r
3347                                 </Member>\r
3348                                 <Member MemberName="LastIndexOf&lt;T&gt;">\r
3349                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static int32 LastIndexOf&lt;T&gt;(!!0[] array, !!0 value)"/>\r
3350                                         <MemberSignature Language="C#" Value="public static int LastIndexOf&lt;T&gt;(T[] array, T value)"/>\r
3351                                         <MemberType>Method</MemberType>\r
3352                                         <ReturnValue>\r
3353                                                 <ReturnType>System.Int32</ReturnType>\r
3354                                         </ReturnValue>\r
3355                                         <Parameters>\r
3356                                                 <Parameter Name="array" Type="T[]"/>\r
3357                                                 <Parameter Name="value" Type="T"/>\r
3358                                         </Parameters>\r
3359                                         <Docs>\r
3360                                                 <summary>\r
3361                                                         <para>Searches the specified array, returning the index of the last occurrence of the specified value.</para>\r
3362                                                 </summary>\r
3363                                                 <param name="array">The array to search.</param>\r
3364                                                 <param name="value">The value to locate.</param>\r
3365                                                 <returns>\r
3366                                                         <para>The zero-based index of the last occurrence of <paramref name="value"/> in \r
3367 <paramref name="array"/>, if found; otherwise, - 1.</para>\r
3368                                                 </returns>\r
3369                                                 <exception cref="T:System.ArgumentNullException">\r
3370                                                         <para>\r
3371                                                                 <paramref name="array"/> is <see langword="null"/>.</para>\r
3372                                                 </exception>\r
3373                                                 <remarks>\r
3374                                                         <para>The elements are compared using <see cref="M:System.Object.Equals(System.Object)"/>. The array is searched backward starting at the last element and ending at the first element. Processing is stopped when the predicate returns <see langword="true"/>.</para>\r
3375                                                 </remarks>\r
3376                                         </Docs>\r
3377                                         <Excluded>0</Excluded>\r
3378                                 </Member>\r
3379                                 <Member MemberName="Length">\r
3380                                         <MemberSignature Language="ILAsm" Value=".property int32 Length { public hidebysig specialname instance int32 get_Length() }"/>\r
3381                                         <MemberSignature Language="C#" Value="public int Length { get; }"/>\r
3382                                         <MemberType>Property</MemberType>\r
3383                                         <ReturnValue>\r
3384                                                 <ReturnType>System.Int32</ReturnType>\r
3385                                         </ReturnValue>\r
3386                                         <Parameters/>\r
3387                                         <Docs>\r
3388                                                 <summary>\r
3389                                                         <para>Gets the total number of elements in all the dimensions\r
3390       of the current instance.</para>\r
3391                                                 </summary>\r
3392                                                 <value>\r
3393                                                         <para>A <see cref="T:System.Int32"/> that contains the total number of elements in all the dimensions of\r
3394    the current instance.</para>\r
3395                                                 </value>\r
3396                                                 <remarks>\r
3397                                                         <para>This property is read-only.</para>\r
3398                                                 </remarks>\r
3399                                         </Docs>\r
3400                                         <Excluded>0</Excluded>\r
3401                                 </Member>\r
3402                                 <Member MemberName="LongLength">\r
3403                                         <MemberSignature Language="ILAsm" Value=".property int64 Length { public hidebysig specialname instance int64 get_LongLength() }"/>\r
3404                                         <MemberSignature Language="C#" Value="public long LongLength {get;}"/>\r
3405                                         <MemberType>Property</MemberType>\r
3406                                         <ReturnValue>\r
3407                                                 <ReturnType>System.Int64</ReturnType>\r
3408                                         </ReturnValue>\r
3409                                         <Parameters/>\r
3410                                         <Docs>\r
3411                                                 <summary>\r
3412                                                         <para>Gets the total number of elements in all the dimensions of the current instance.</para>\r
3413                                                 </summary>\r
3414                                                 <value>\r
3415                                                         <para>A <see cref="T:System.Int64"/> value containing the length of the array.</para>\r
3416                                                 </value>\r
3417                                                 <remarks>\r
3418                                                         <para>This property is read-only.</para>\r
3419                                                 </remarks>\r
3420                                         </Docs>\r
3421                                         <Excluded>0</Excluded>\r
3422                                 </Member>\r
3423                                 <Member MemberName="Rank">\r
3424                                         <MemberSignature Language="ILAsm" Value=".property int32 Rank { public hidebysig specialname instance int32 get_Rank() }"/>\r
3425                                         <MemberSignature Language="C#" Value="public int Rank { get; }"/>\r
3426                                         <MemberType>Property</MemberType>\r
3427                                         <ReturnValue>\r
3428                                                 <ReturnType>System.Int32</ReturnType>\r
3429                                         </ReturnValue>\r
3430                                         <Parameters/>\r
3431                                         <Docs>\r
3432                                                 <summary>\r
3433                                                         <para>Gets the rank (number of dimensions) of the current instance.</para>\r
3434                                                 </summary>\r
3435                                                 <value>\r
3436                                                         <para>A <see cref="T:System.Int32"/> that contains the rank (number of dimensions) of the current instance.</para>\r
3437                                                 </value>\r
3438                                                 <remarks>\r
3439                                                         <para>This property is read-only.</para>\r
3440                                                 </remarks>\r
3441                                         </Docs>\r
3442                                         <Excluded>0</Excluded>\r
3443                                 </Member>\r
3444                                 <Member MemberName="Resize&lt;T&gt;">\r
3445                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static void Resize&lt;T&gt;(!!0[]&amp; array, int32 newSize)"/>\r
3446                                         <MemberSignature Language="C#" Value="public static void Resize&lt;T&gt;(ref T[] array, int newSize)"/>\r
3447                                         <MemberType>Method</MemberType>\r
3448                                         <ReturnValue>\r
3449                                                 <ReturnType>System.Void</ReturnType>\r
3450                                         </ReturnValue>\r
3451                                         <Parameters>\r
3452                                                 <Parameter Name="array" Type="T[]"/>\r
3453                                                 <Parameter Name="newSize" Type="System.Int32"/>\r
3454                                         </Parameters>\r
3455                                         <Docs>\r
3456                                                 <summary>\r
3457                                                         <para>Changes the size of an array to the specified new size.</para>\r
3458                                                 </summary>\r
3459                                                 <param name="array">\r
3460                                                         <para>The array to resize.</para>\r
3461                                                         <para>-or-</para>\r
3462                                                         <para>\r
3463                                                                 <see langword="null"/> to create a new array with the specified size.</para>\r
3464                                                 </param>\r
3465                                                 <param name="newSize">The size of the new array.</param>\r
3466                                                 <exception cref="T:System.ArgumentOutOfRangeException">\r
3467                                                         <para>\r
3468                                                                 <paramref name="newSize"/> is less than zero.</para>\r
3469                                                 </exception>\r
3470                                                 <remarks>\r
3471                                                         <para>If array is <see langword="null"/>, this method creates a new array with the specified size.</para>\r
3472                                                         <para>If array is not <see langword="null"/>, then if <paramref name="newSize"/> is equal to <see cref="P:System.Array.Length"/> of the old array, this method does nothing. Otherwise, this method allocates a new array with the specified size, copies elements from the old array to the new one, and then assigns the new array reference to the array parameter. If <paramref name="newSize"/>  is greater than <see cref="P:System.Array.Length"/>  of the old array, a new array is allocated and all the elements are copied from the old array to the new one.  If <paramref name="newSize"/> is less than <see cref="P:System.Array.Length"/>  of the old array, a new array is allocated and elements are copied from the old array to the new one until the new one is filled; the rest of the elements in the old array are ignored.</para>\r
3473                                                 </remarks>\r
3474                                         </Docs>\r
3475                                         <Excluded>0</Excluded>\r
3476                                 </Member>\r
3477                                 <Member MemberName="Reverse">\r
3478                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static void Reverse(class System.Array array, int32 index, int32 length)"/>\r
3479                                         <MemberSignature Language="C#" Value="public static void Reverse(Array array, int index, int length);"/>\r
3480                                         <MemberType>Method</MemberType>\r
3481                                         <ReturnValue>\r
3482                                                 <ReturnType>System.Void</ReturnType>\r
3483                                         </ReturnValue>\r
3484                                         <Parameters>\r
3485                                                 <Parameter Name="array" Type="System.Array"/>\r
3486                                                 <Parameter Name="index" Type="System.Int32"/>\r
3487                                                 <Parameter Name="length" Type="System.Int32"/>\r
3488                                         </Parameters>\r
3489                                         <Docs>\r
3490                                                 <summary>\r
3491                                                         <para>Reverses the sequence of the elements in the specified \r
3492       range of the specified one-dimensional <see cref="T:System.Array"/>.</para>\r
3493                                                 </summary>\r
3494                                                 <param name="array">The one-dimensional <see cref="T:System.Array"/> to reverse.</param>\r
3495                                                 <param name="index">A <see cref="T:System.Int32"/> that contains the index at which reversing starts.</param>\r
3496                                                 <param name="length">A <see cref="T:System.Int32"/> that contains the number of elements to reverse.</param>\r
3497                                                 <exception cref="T:System.ArgumentNullException">\r
3498                                                         <paramref name="array"/> is <see langword="null"/>.</exception>\r
3499                                                 <exception cref="T:System.RankException">\r
3500                                                         <paramref name="array"/> is multidimensional.</exception>\r
3501                                                 <exception cref="T:System.ArgumentOutOfRangeException">\r
3502                                                         <para>\r
3503                                                                 <paramref name="index"/> &lt; <paramref name="array"/>.GetLowerBound(0).</para>\r
3504                                                         <para>\r
3505                                                                 <paramref name="length"/> &lt; 0.</para>\r
3506                                                 </exception>\r
3507                                                 <exception cref="T:System.ArgumentException">\r
3508                                                         <paramref name="index"/> and <paramref name="length"/> do not specify a valid range in <paramref name="array"/> (i.e. <paramref name="index"/> + <paramref name="length"/> &gt; <paramref name="array"/>.GetLowerBound(0) + <paramref name="array"/>.Length).</exception>\r
3509                                                 <example>\r
3510                                                         <para>The following example demonstrates the <see cref="M:System.Array.Reverse(System.Array)"/> method.</para>\r
3511                                                         <code lang="C#">using System;\r
3512 public class ArrayReverseExample {\r
3513    public static void Main() {\r
3514       string[] strAry = { "one", "two", "three" };\r
3515       Console.Write( "The elements of the array are:");\r
3516       foreach( string str in strAry )\r
3517          Console.Write( " {0}", str );\r
3518       Array.Reverse( strAry );\r
3519       Console.WriteLine();\r
3520       Console.WriteLine( "After reversing the array," );\r
3521       Console.Write( "the elements of the array are:");\r
3522       foreach( string str in strAry )\r
3523          Console.Write( " {0}", str );\r
3524    }\r
3525 }\r
3526 </code>\r
3527                                                         <para>The output is</para>\r
3528                                                         <c>\r
3529                                                                 <para>The elements of the array are: one two three</para>\r
3530                                                                 <para>After reversing the array,</para>\r
3531                                                                 <para>the elements of the array are: three two one</para>\r
3532                                                         </c>\r
3533                                                 </example>\r
3534                                         </Docs>\r
3535                                         <Excluded>0</Excluded>\r
3536                                 </Member>\r
3537                                 <Member MemberName="Reverse">\r
3538                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static void Reverse(class System.Array array)"/>\r
3539                                         <MemberSignature Language="C#" Value="public static void Reverse(Array array);"/>\r
3540                                         <MemberType>Method</MemberType>\r
3541                                         <ReturnValue>\r
3542                                                 <ReturnType>System.Void</ReturnType>\r
3543                                         </ReturnValue>\r
3544                                         <Parameters>\r
3545                                                 <Parameter Name="array" Type="System.Array"/>\r
3546                                         </Parameters>\r
3547                                         <Docs>\r
3548                                                 <summary>\r
3549                                                         <para>Reverses the sequence of the elements in the specified one-dimensional\r
3550    <see cref="T:System.Array"/>.</para>\r
3551                                                 </summary>\r
3552                                                 <param name="array">The one-dimensional <see cref="T:System.Array"/> to reverse.</param>\r
3553                                                 <exception cref="T:System.ArgumentNullException">\r
3554                                                         <paramref name="array"/> is <see langword="null"/>.</exception>\r
3555                                                 <exception cref="T:System.RankException">\r
3556                                                         <paramref name="array"/> has more than one dimension.</exception>\r
3557                                                 <remarks>\r
3558                                                         <para>This version of <see cref="M:System.Array.Reverse(System.Array)"/> is equivalent to <see cref="M:System.Array.Reverse(System.Array)"/>(<paramref name="array"/>, <paramref name="array"/>.GetLowerBound(0),\r
3559 <paramref name="array"/>.Length).</para>\r
3560                                                 </remarks>\r
3561                                         </Docs>\r
3562                                         <Excluded>0</Excluded>\r
3563                                 </Member>\r
3564                                 <Member MemberName="SetValue">\r
3565                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void SetValue(object value, int32 index)"/>\r
3566                                         <MemberSignature Language="C#" Value="public void SetValue(object value, int index);"/>\r
3567                                         <MemberType>Method</MemberType>\r
3568                                         <ReturnValue>\r
3569                                                 <ReturnType>System.Void</ReturnType>\r
3570                                         </ReturnValue>\r
3571                                         <Parameters>\r
3572                                                 <Parameter Name="value" Type="System.Object"/>\r
3573                                                 <Parameter Name="index" Type="System.Int32"/>\r
3574                                         </Parameters>\r
3575                                         <Docs>\r
3576                                                 <summary>\r
3577                                                         <para> Sets the value of the element at the specified position\r
3578       in the current one-dimensional instance.</para>\r
3579                                                 </summary>\r
3580                                                 <param name="value">A <see cref="T:System.Object"/> that contains the new value for the specified element.</param>\r
3581                                                 <param name="index">A <see cref="T:System.Int32"/> that contains the index of the element whose value is to be set.</param>\r
3582                                                 <exception cref="T:System.ArgumentException">\r
3583                                                         <para>The current instance has more than one dimension.</para>\r
3584                                                 </exception>\r
3585                                                 <exception cref="T:System.IndexOutOfRangeException">\r
3586                                                         <para>\r
3587                                                                 <paramref name="index"/> is outside the range of valid indices for the current instance.</para>\r
3588                                                 </exception>\r
3589                                                 <exception cref="T:System.InvalidCastException">\r
3590                                                         <para>\r
3591                                                                 <paramref name="value"/> is not assignment-compatible with the element type of the current instance.</para>\r
3592                                                 </exception>\r
3593                                                 <remarks>\r
3594                                                         <block subset="none" type="note">\r
3595                                                                 <para>Use the <see cref="M:System.Array.GetLowerBound(System.Int32)"/> and <see cref="M:System.Array.GetUpperBound(System.Int32)"/> methods to determine whether\r
3596    <paramref name="index"/> is out of bounds.</para>\r
3597                                                                 <para> For more\r
3598       information regarding valid conversions that will be performed by this method,\r
3599       see <see cref="T:System.Convert"/>.</para>\r
3600                                                         </block>\r
3601                                                 </remarks>\r
3602                                         </Docs>\r
3603                                         <Excluded>0</Excluded>\r
3604                                 </Member>\r
3605                                 <Member MemberName="SetValue">\r
3606                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void SetValue(object value, int32 index1, int32 index2)"/>\r
3607                                         <MemberSignature Language="C#" Value="public void SetValue(object value, int index1, int index2);"/>\r
3608                                         <MemberType>Method</MemberType>\r
3609                                         <ReturnValue>\r
3610                                                 <ReturnType>System.Void</ReturnType>\r
3611                                         </ReturnValue>\r
3612                                         <Parameters>\r
3613                                                 <Parameter Name="value" Type="System.Object"/>\r
3614                                                 <Parameter Name="index1" Type="System.Int32"/>\r
3615                                                 <Parameter Name="index2" Type="System.Int32"/>\r
3616                                         </Parameters>\r
3617                                         <Docs>\r
3618                                                 <summary>\r
3619                                                         <para> Sets the value of the element at the specified position\r
3620       in the current two-dimensional instance.</para>\r
3621                                                 </summary>\r
3622                                                 <param name="value">A <see cref="T:System.Object"/> that contains the new value for the specified element.</param>\r
3623                                                 <param name="index1">A <see cref="T:System.Int32"/> that contains the first-dimension index of the element in the current instance to set. </param>\r
3624                                                 <param name="index2">A <see cref="T:System.Int32"/> that contains the second-dimension index of the element in the current instance to set. </param>\r
3625                                                 <exception cref="T:System.ArgumentException">\r
3626                                                         <para>The current instance does not have exactly two dimensions.</para>\r
3627                                                 </exception>\r
3628                                                 <exception cref="T:System.IndexOutOfRangeException">At least one of <paramref name="index1"/> or <paramref name="index2"/> is outside the range of valid indices for the corresponding dimension of the current instance.</exception>\r
3629                                                 <exception cref="T:System.InvalidCastException">\r
3630                                                         <para>\r
3631                                                                 <paramref name="value"/> is not assignment-compatible with the element type of the current instance.</para>\r
3632                                                 </exception>\r
3633                                                 <remarks>\r
3634                                                         <block subset="none" type="note">\r
3635                                                                 <para>For more information regarding valid conversions that will be performed by\r
3636          this method, see <see cref="T:System.Convert"/>.</para>\r
3637                                                                 <para>Use the <see cref="M:System.Array.GetLowerBound(System.Int32)"/> and <see cref="M:System.Array.GetUpperBound(System.Int32)"/> methods to determine whether any of the indices\r
3638       are out of bounds.</para>\r
3639                                                         </block>\r
3640                                                 </remarks>\r
3641                                         </Docs>\r
3642                                         <Excluded>1</Excluded>\r
3643                                         <ExcludedLibrary>ExtendedArray</ExcludedLibrary>\r
3644                                 </Member>\r
3645                                 <Member MemberName="SetValue">\r
3646                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void SetValue(object value, int32 index1, int32 index2, int32 index3)"/>\r
3647                                         <MemberSignature Language="C#" Value="public void SetValue(object value, int index1, int index2, int index3);"/>\r
3648                                         <MemberType>Method</MemberType>\r
3649                                         <ReturnValue>\r
3650                                                 <ReturnType>System.Void</ReturnType>\r
3651                                         </ReturnValue>\r
3652                                         <Parameters>\r
3653                                                 <Parameter Name="value" Type="System.Object"/>\r
3654                                                 <Parameter Name="index1" Type="System.Int32"/>\r
3655                                                 <Parameter Name="index2" Type="System.Int32"/>\r
3656                                                 <Parameter Name="index3" Type="System.Int32"/>\r
3657                                         </Parameters>\r
3658                                         <Docs>\r
3659                                                 <summary>\r
3660                                                         <para> Sets the value of the element at the\r
3661       specified position in the current three-dimensional instance.</para>\r
3662                                                 </summary>\r
3663                                                 <param name="value">A <see cref="T:System.Object"/> that contains the new value for the specified element. </param>\r
3664                                                 <param name="index1">A <see cref="T:System.Int32"/> that contains the first-dimension index of the element in the current instance to set. </param>\r
3665                                                 <param name="index2">A <see cref="T:System.Int32"/> that contains the second-dimension index of the element in the current instance to set. </param>\r
3666                                                 <param name="index3">A <see cref="T:System.Int32"/> that contains the third-dimension index of the element in the current instance to set. </param>\r
3667                                                 <exception cref="T:System.ArgumentException">\r
3668                                                         <para>The current instance does not have exactly three dimensions.</para>\r
3669                                                 </exception>\r
3670                                                 <exception cref="T:System.IndexOutOfRangeException">At least one of <paramref name="index1"/>, <paramref name="index2"/>, or <paramref name="index3"/> is outside the range of valid indices for the corresponding dimension of the current instance.</exception>\r
3671                                                 <exception cref="T:System.InvalidCastException">\r
3672                                                         <para>\r
3673                                                                 <paramref name="value"/> is not assignment-compatible with the element type of the current instance.</para>\r
3674                                                 </exception>\r
3675                                                 <remarks>\r
3676                                                         <block subset="none" type="note">\r
3677                                                                 <para>For more information regarding valid conversions that will be performed by\r
3678          this method, see <see cref="T:System.Convert"/>.</para>\r
3679                                                                 <para>Use the <see cref="M:System.Array.GetLowerBound(System.Int32)"/> and\r
3680    <see cref="M:System.Array.GetUpperBound(System.Int32)"/> methods to determine whether any of the indices\r
3681       are out of bounds.</para>\r
3682                                                         </block>\r
3683                                                 </remarks>\r
3684                                         </Docs>\r
3685                                         <Excluded>1</Excluded>\r
3686                                         <ExcludedLibrary>ExtendedArray</ExcludedLibrary>\r
3687                                 </Member>\r
3688                                 <Member MemberName="SetValue">\r
3689                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig instance void SetValue(object value, int32[] indices)"/>\r
3690                                         <MemberSignature Language="C#" Value="public void SetValue(object value, int[] indices);"/>\r
3691                                         <MemberType>Method</MemberType>\r
3692                                         <ReturnValue>\r
3693                                                 <ReturnType>System.Void</ReturnType>\r
3694                                         </ReturnValue>\r
3695                                         <Parameters>\r
3696                                                 <Parameter Name="value" Type="System.Object"/>\r
3697                                                 <Parameter Name="indices" Type="System.Int32[]"/>\r
3698                                         </Parameters>\r
3699                                         <Docs>\r
3700                                                 <summary>\r
3701                                                         <para>Sets the value of the element at the specified position in\r
3702       the current multidimensional instance.</para>\r
3703                                                 </summary>\r
3704                                                 <param name="value">A <see cref="T:System.Object"/> that contains the new value for the specified element. </param>\r
3705                                                 <param name="indices">A one-dimensional array of <see cref="T:System.Int32"/> objects that contains the indices that specify the position of the element in the current instance to set. </param>\r
3706                                                 <exception cref="T:System.ArgumentNullException">\r
3707                                                         <paramref name="indices"/> is <see langword="null"/>.</exception>\r
3708                                                 <exception cref="T:System.ArgumentException">\r
3709                                                         <para>The number of dimensions in the current instance is not equal to the number of elements in <paramref name="indices"/>. </para>\r
3710                                                 </exception>\r
3711                                                 <exception cref="T:System.IndexOutOfRangeException">\r
3712                                                         <para>At least one element in <paramref name="indices"/> is outside the range of valid indices for the corresponding dimension of the current instance.</para>\r
3713                                                 </exception>\r
3714                                                 <exception cref="T:System.InvalidCastException">\r
3715                                                         <para>\r
3716                                                                 <paramref name="value"/> is not assignment-compatible with the element type of the current instance.</para>\r
3717                                                 </exception>\r
3718                                                 <remarks>\r
3719                                                         <para>The number of elements in <paramref name="indices"/> is required to be equal to the number of\r
3720    dimensions in the current instance. All elements in <paramref name="indices"/> collectively specify the position of the\r
3721    desired element in the current instance.</para>\r
3722                                                         <block subset="none" type="note">\r
3723                                                                 <para>For more information regarding valid conversions that will be performed by\r
3724       this method, see <see cref="T:System.Convert"/>.</para>\r
3725                                                                 <para>Use the <see cref="M:System.Array.GetLowerBound(System.Int32)"/> and <see cref="M:System.Array.GetUpperBound(System.Int32)"/> methods to determine whether any\r
3726    of the values in <paramref name="indices"/> is out of bounds.</para>\r
3727                                                         </block>\r
3728                                                 </remarks>\r
3729                                         </Docs>\r
3730                                         <Excluded>1</Excluded>\r
3731                                         <ExcludedLibrary>ExtendedArray</ExcludedLibrary>\r
3732                                 </Member>\r
3733                                 <Member MemberName="Sort">\r
3734                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static void Sort(class System.Array keys, class System.Array items, int32 index, int32 length, class System.Collections.IComparer comparer)"/>\r
3735                                         <MemberSignature Language="C#" Value="public static void Sort(Array keys, Array items, int index, int length, IComparer comparer);"/>\r
3736                                         <MemberType>Method</MemberType>\r
3737                                         <ReturnValue>\r
3738                                                 <ReturnType>System.Void</ReturnType>\r
3739                                         </ReturnValue>\r
3740                                         <Parameters>\r
3741                                                 <Parameter Name="keys" Type="System.Array"/>\r
3742                                                 <Parameter Name="items" Type="System.Array"/>\r
3743                                                 <Parameter Name="index" Type="System.Int32"/>\r
3744                                                 <Parameter Name="length" Type="System.Int32"/>\r
3745                                                 <Parameter Name="comparer" Type="System.Collections.IComparer"/>\r
3746                                         </Parameters>\r
3747                                         <Docs>\r
3748                                                 <summary>\r
3749                                                         <para>Sorts the specified range of the specified pair of one-dimensional <see cref="T:System.Array"/> objects (one\r
3750    containing a set of keys and the other containing corresponding items) based on\r
3751    the keys in the first specified <see cref="T:System.Array"/> using the specified <see cref="T:System.Collections.IComparer"/>\r
3752    implementation.</para>\r
3753                                                 </summary>\r
3754                                                 <param name="keys">A one-dimensional <see cref="T:System.Array"/> that contains the keys to sort.</param>\r
3755                                                 <param name="items">\r
3756                                                         <para>A one-dimensional <see cref="T:System.Array"/> that contains the items that correspond to each element of <paramref name="keys"/>. Specify a null reference to sort only <paramref name="keys"/>.</para>\r
3757                                                 </param>\r
3758                                                 <param name="index">A <see cref="T:System.Int32"/> that contains the index at which sorting starts.</param>\r
3759                                                 <param name="length">A <see cref="T:System.Int32"/> that contains the number of elements to sort.</param>\r
3760                                                 <param name="comparer">\r
3761                                                         <para>The <see cref="T:System.Collections.IComparer"/> implementation to use when comparing elements. Specify a null reference to use the <see cref="T:System.IComparable"/> implementation of each element.</para>\r
3762                                                 </param>\r
3763                                                 <exception cref="T:System.ArgumentNullException">\r
3764                                                         <para>\r
3765                                                                 <paramref name="keys"/> is <see langword="null"/>.</para>\r
3766                                                 </exception>\r
3767                                                 <exception cref="T:System.RankException">\r
3768                                                         <para>\r
3769                                                                 <paramref name="keys"/> has more than one dimension.</para>\r
3770                                                         <para>-or-</para>\r
3771                                                         <para>\r
3772                                                                 <paramref name="items"/> is not a null reference and has more than one dimension.</para>\r
3773                                                 </exception>\r
3774                                                 <exception cref="T:System.ArgumentOutOfRangeException">\r
3775                                                         <para>\r
3776                                                                 <paramref name="index"/> &lt; <paramref name="keys"/>.GetLowerBound(0).</para>\r
3777                                                         <para>-or-</para>\r
3778                                                         <para>\r
3779                                                                 <paramref name="length"/> &lt; 0.</para>\r
3780                                                 </exception>\r
3781                                                 <exception cref="T:System.ArgumentException">\r
3782                                                         <para>\r
3783                                                                 <paramref name="items"/> is not a null reference, and <paramref name="keys"/>.GetLowerBound(0) does not equal <paramref name="items"/>.GetLowerBound(0). </para>\r
3784                                                         <para>-or- </para>\r
3785                                                         <para>\r
3786                                                                 <paramref name="index"/> and <paramref name="length"/> do not specify a valid range in <paramref name="key"/>. </para>\r
3787                                                         <para>-or- </para>\r
3788                                                         <para>\r
3789                                                                 <paramref name="items"/> is not a null reference, and <paramref name="index"/> and <paramref name="length"/> do not specify a valid range in <paramref name="items"/>. </para>\r
3790                                                 </exception>\r
3791                                                 <exception cref="T:System.InvalidOperationException">\r
3792                                                         <para>\r
3793                                                                 <paramref name="comparer"/> is <see langword="null"/>, and one or more elements in <paramref name="keys"/> that are used in a comparison do not implement the <see cref="T:System.IComparable"/> interface. </para>\r
3794                                                 </exception>\r
3795                                                 <remarks>\r
3796                                                         <para> Each key in <paramref name="keys"/> is required to have\r
3797    a corresponding item in <paramref name="items"/>. The sort is performed according to the\r
3798    order of <paramref name="keys"/>. After a key is repositioned during the sort,\r
3799    the corresponding item in <paramref name="items"/> is similarly repositioned. Only\r
3800 <paramref name="keys"/>.Length elements of <paramref name="items"/> will be sorted. Therefore, \r
3801 <paramref name="items"/> is sorted according to the arrangement of\r
3802    the corresponding keys in <paramref name="keys"/>. If the sort is not successfully\r
3803    completed, the results are undefined.</para>\r
3804                                                         <para>If <paramref name="comparer"/> is a null reference, each element\r
3805 of <paramref name="keys"/> is required to implement the <see cref="T:System.IComparable"/> interface to be capable of comparisons\r
3806 with every other element in <paramref name="keys"/>.</para>\r
3807                                                 </remarks>\r
3808                                         </Docs>\r
3809                                         <Excluded>0</Excluded>\r
3810                                 </Member>\r
3811                                 <Member MemberName="Sort">\r
3812                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static void Sort(class System.Array array, int32 index, int32 length, class System.Collections.IComparer comparer)"/>\r
3813                                         <MemberSignature Language="C#" Value="public static void Sort(Array array, int index, int length, IComparer comparer);"/>\r
3814                                         <MemberType>Method</MemberType>\r
3815                                         <ReturnValue>\r
3816                                                 <ReturnType>System.Void</ReturnType>\r
3817                                         </ReturnValue>\r
3818                                         <Parameters>\r
3819                                                 <Parameter Name="array" Type="System.Array"/>\r
3820                                                 <Parameter Name="index" Type="System.Int32"/>\r
3821                                                 <Parameter Name="length" Type="System.Int32"/>\r
3822                                                 <Parameter Name="comparer" Type="System.Collections.IComparer"/>\r
3823                                         </Parameters>\r
3824                                         <Docs>\r
3825                                                 <summary>\r
3826                                                         <para>Sorts the elements in the specified section of the\r
3827       specified one-dimensional <see cref="T:System.Array"/>\r
3828       using the specified <see cref="T:System.Collections.IComparer"/>\r
3829       implementation.</para>\r
3830                                                 </summary>\r
3831                                                 <param name="array">A one-dimensional <see cref="T:System.Array"/> to sort.</param>\r
3832                                                 <param name="index">A <see cref="T:System.Int32"/> that contains the index at which sorting starts.</param>\r
3833                                                 <param name="length">A <see cref="T:System.Int32"/> that contains the number of elements to sort.</param>\r
3834                                                 <param name="comparer">\r
3835                                                         <para>The <see cref="T:System.Collections.IComparer"/> implementation to use when comparing elements. Specify a null reference to use the <see cref="T:System.IComparable"/> implementation of each element.</para>\r
3836                                                 </param>\r
3837                                                 <exception cref="T:System.ArgumentNullException">\r
3838                                                         <paramref name="array"/> is <see langword="null"/>. </exception>\r
3839                                                 <exception cref="T:System.RankException">\r
3840                                                         <paramref name="array"/> has more than one dimension. </exception>\r
3841                                                 <exception cref="T:System.ArgumentOutOfRangeException">\r
3842                                                         <para>\r
3843                                                                 <paramref name="index"/> &lt; <paramref name="array"/>.GetLowerBound(0).</para>\r
3844                                                         <para>-or-</para>\r
3845                                                         <para>\r
3846                                                                 <paramref name="length"/> &lt; 0.</para>\r
3847                                                 </exception>\r
3848                                                 <exception cref="T:System.ArgumentException">\r
3849                                                         <para>\r
3850                                                                 <paramref name="index"/> and <paramref name="length"/> do not specify a valid range in <paramref name="array"/>.</para>\r
3851                                                 </exception>\r
3852                                                 <exception cref="T:System.InvalidOperationException">\r
3853                                                         <para>\r
3854                                                                 <paramref name="comparer"/> is <see langword="null"/>, and one or more elements in <paramref name="array"/> that are used in a comparison do not implement the <see cref="T:System.IComparable"/> interface. </para>\r
3855                                                 </exception>\r
3856                                                 <remarks>\r
3857                                                         <para>This version of <see cref="M:System.Array.Sort(System.Array)"/> is equivalent to <see cref="M:System.Array.Sort(System.Array)"/>(<paramref name="array"/>, <see langword="null"/>, <paramref name="index"/>, <paramref name="length"/>, <paramref name="comparer"/>).</para>\r
3858                                                         <para>If <paramref name="comparer"/> is a null reference, each element\r
3859 of <paramref name="array"/> is required to implement the <see cref="T:System.IComparable"/> interface to be capable of comparisons\r
3860 with every other element in <paramref name="array"/>. If the sort is not successfully\r
3861 completed, the results are unspecified.</para>\r
3862                                                 </remarks>\r
3863                                         </Docs>\r
3864                                         <Excluded>0</Excluded>\r
3865                                 </Member>\r
3866                                 <Member MemberName="Sort">\r
3867                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static void Sort(class System.Array keys, class System.Array items, class System.Collections.IComparer comparer)"/>\r
3868                                         <MemberSignature Language="C#" Value="public static void Sort(Array keys, Array items, IComparer comparer);"/>\r
3869                                         <MemberType>Method</MemberType>\r
3870                                         <ReturnValue>\r
3871                                                 <ReturnType>System.Void</ReturnType>\r
3872                                         </ReturnValue>\r
3873                                         <Parameters>\r
3874                                                 <Parameter Name="keys" Type="System.Array"/>\r
3875                                                 <Parameter Name="items" Type="System.Array"/>\r
3876                                                 <Parameter Name="comparer" Type="System.Collections.IComparer"/>\r
3877                                         </Parameters>\r
3878                                         <Docs>\r
3879                                                 <summary>\r
3880                                                         <para>Sorts the specified pair of one-dimensional\r
3881    <see cref="T:System.Array"/> objects (one\r
3882       containing a set of keys and the other containing corresponding items) based on\r
3883       the keys in the first specified <see cref="T:System.Array"/> using the specified <see cref="T:System.Collections.IComparer"/> implementation.</para>\r
3884                                                 </summary>\r
3885                                                 <param name="keys">A one-dimensional <see cref="T:System.Array"/> that contains the keys to sort.</param>\r
3886                                                 <param name="items">\r
3887                                                         <para>A one-dimensional <see cref="T:System.Array"/> that contains the items that correspond to each element in <paramref name="keys"/>. Specify a null reference to sort only <paramref name="keys"/>.</para>\r
3888                                                 </param>\r
3889                                                 <param name="comparer">\r
3890                                                         <para>The <see cref="T:System.Collections.IComparer"/> implementation to use when comparing elements. Specify a null reference to use the <see cref="T:System.IComparable"/> implementation of each element.</para>\r
3891                                                 </param>\r
3892                                                 <exception cref="T:System.ArgumentNullException">\r
3893                                                         <para>\r
3894                                                                 <paramref name="keys"/> is <see langword="null"/>.</para>\r
3895                                                 </exception>\r
3896                                                 <exception cref="T:System.RankException">\r
3897                                                         <para>\r
3898                                                                 <paramref name="keys"/> has more than one dimension.</para>\r
3899                                                         <para>-or-</para>\r
3900                                                         <para>\r
3901                                                                 <paramref name="items"/> is not a null reference and has more than one dimension.</para>\r
3902                                                 </exception>\r
3903                                                 <exception cref="T:System.ArgumentException">\r
3904                                                         <para>\r
3905                                                                 <paramref name="items"/> is not a null reference, and <paramref name="keys"/>.GetLowerBound(0) does not equal <paramref name="items"/>.GetLowerBound(0). </para>\r
3906                                                         <para>-or-</para>\r
3907                                                         <para>\r
3908                                                                 <paramref name="items"/> is not a null reference, and <paramref name="keys"/>.Length &gt; <paramref name="items"/>.Length.</para>\r
3909                                                 </exception>\r
3910                                                 <exception cref="T:System.InvalidOperationException">\r
3911                                                         <para>\r
3912                                                                 <paramref name="comparer"/> is a <see langword="null"/>, and one or more elements in <paramref name="keys"/> that are used in a comparison do not implement the <see cref="T:System.IComparable"/> interface. </para>\r
3913                                                 </exception>\r
3914                                                 <remarks>\r
3915                                                         <para>This version of <see cref="M:System.Array.Sort(System.Array)"/> is equivalent to <see cref="M:System.Array.Sort(System.Array)"/>(<paramref name="keys"/>, <paramref name="items"/>, <paramref name="keys"/>.GetLowerBound(0), <paramref name="keys"/>.Length, <paramref name="comparer"/>).</para>\r
3916                                                         <para> Each key in <paramref name="keys"/> is required to have\r
3917 a corresponding item in <paramref name="items"/>. The sort is performed according to the order of\r
3918 <paramref name="keys"/> . After a key is repositioned during the sort, the \r
3919 corresponding item in <paramref name="items"/> is similarly repositioned. Only\r
3920 <paramref name="keys"/>.Length elements of <paramref name="items"/> are sorted. Therefore, \r
3921 <paramref name="items"/>\r
3922 is sorted according to the arrangement of the corresponding keys in\r
3923 <paramref name="keys"/>. If\r
3924 the sort is not successfully completed, the results are unspecified.</para>\r
3925                                                         <para>If <paramref name="comparer"/> is a null reference, each element\r
3926 of <paramref name="keys"/> is required to implement the <see cref="T:System.IComparable"/> interface to be capable of comparisons\r
3927 with every other element in <paramref name="keys"/>.</para>\r
3928                                                 </remarks>\r
3929                                         </Docs>\r
3930                                         <Excluded>0</Excluded>\r
3931                                 </Member>\r
3932                                 <Member MemberName="Sort">\r
3933                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static void Sort(class System.Array array, class System.Collections.IComparer comparer)"/>\r
3934                                         <MemberSignature Language="C#" Value="public static void Sort(Array array, IComparer comparer);"/>\r
3935                                         <MemberType>Method</MemberType>\r
3936                                         <ReturnValue>\r
3937                                                 <ReturnType>System.Void</ReturnType>\r
3938                                         </ReturnValue>\r
3939                                         <Parameters>\r
3940                                                 <Parameter Name="array" Type="System.Array"/>\r
3941                                                 <Parameter Name="comparer" Type="System.Collections.IComparer"/>\r
3942                                         </Parameters>\r
3943                                         <Docs>\r
3944                                                 <summary>\r
3945                                                         <para>Sorts the elements in the specified one-dimensional <see cref="T:System.Array"/> using the\r
3946    specified <see cref="T:System.Collections.IComparer"/> implementation.</para>\r
3947                                                 </summary>\r
3948                                                 <param name="array">The one-dimensional <see cref="T:System.Array"/> to sort.</param>\r
3949                                                 <param name="comparer">\r
3950                                                         <para>The <see cref="T:System.Collections.IComparer"/> implementation to use when comparing elements. Specify a null reference to use the <see cref="T:System.IComparable"/> implementation of each element.</para>\r
3951                                                 </param>\r
3952                                                 <exception cref="T:System.ArgumentNullException">\r
3953                                                         <paramref name="array"/> is <see langword="null"/>. </exception>\r
3954                                                 <exception cref="T:System.RankException">\r
3955                                                         <paramref name="array"/> has more than one dimension. </exception>\r
3956                                                 <exception cref="T:System.InvalidOperationException">\r
3957                                                         <paramref name="comparer"/> is a null reference, and one or more elements in <paramref name="array"/> that are used in a comparison do not implement the <see cref="T:System.IComparable"/> interface.</exception>\r
3958                                                 <remarks>\r
3959                                                         <para>This version of <see cref="M:System.Array.Sort(System.Array)"/> is equivalent to <see cref="M:System.Array.Sort(System.Array)"/>(<paramref name="array"/>, <see langword="null"/>, <paramref name="array"/>.GetLowerBound(0), <paramref name="array"/>.Length,\r
3960 <paramref name="comparer"/>).</para>\r
3961                                                         <para>If <paramref name="comparer"/> is a null reference, each element\r
3962 of <paramref name="array"/> is required to implement the <see cref="T:System.IComparable"/> interface to be capable of comparisons\r
3963 with every other element in <paramref name="array"/>. If the sort is not successfully\r
3964 completed, the results are unspecified.</para>\r
3965                                                 </remarks>\r
3966                                         </Docs>\r
3967                                         <Excluded>0</Excluded>\r
3968                                 </Member>\r
3969                                 <Member MemberName="Sort">\r
3970                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static void Sort(class System.Array keys, class System.Array items, int32 index, int32 length)"/>\r
3971                                         <MemberSignature Language="C#" Value="public static void Sort(Array keys, Array items, int index, int length);"/>\r
3972                                         <MemberType>Method</MemberType>\r
3973                                         <ReturnValue>\r
3974                                                 <ReturnType>System.Void</ReturnType>\r
3975                                         </ReturnValue>\r
3976                                         <Parameters>\r
3977                                                 <Parameter Name="keys" Type="System.Array"/>\r
3978                                                 <Parameter Name="items" Type="System.Array"/>\r
3979                                                 <Parameter Name="index" Type="System.Int32"/>\r
3980                                                 <Parameter Name="length" Type="System.Int32"/>\r
3981                                         </Parameters>\r
3982                                         <Docs>\r
3983                                                 <summary>\r
3984                                                         <para>Sorts the specified ranges of the specified pair of\r
3985       one-dimensional <see cref="T:System.Array"/>\r
3986       objects (one containing a set of keys and the other containing corresponding\r
3987       items) based on the keys in the first specified <see cref="T:System.Array"/>.</para>\r
3988                                                 </summary>\r
3989                                                 <param name="keys">A one-dimensional <see cref="T:System.Array"/> that contains the keys to sort.</param>\r
3990                                                 <param name="items">A one-dimensional <see cref="T:System.Array"/> that contains the items that correspond to each element in <paramref name="keys"/>. Specify a null reference to sort only <paramref name="keys"/>.</param>\r
3991                                                 <param name="index">A <see cref="T:System.Int32"/> that contains the index at which sort begins.</param>\r
3992                                                 <param name="length">A <see cref="T:System.Int32"/> that contains the number of elements to sort.</param>\r
3993                                                 <exception cref="T:System.ArgumentNullException">\r
3994                                                         <para>\r
3995                                                                 <paramref name="keys"/> is <see langword="null"/>.</para>\r
3996                                                 </exception>\r
3997                                                 <exception cref="T:System.RankException">\r
3998                                                         <para>\r
3999                                                                 <paramref name="keys"/> has more than one dimension.</para>\r
4000                                                         <para> -or-</para>\r
4001                                                         <para>\r
4002                                                                 <paramref name="items"/> is not a null reference and has more than one dimension.</para>\r
4003                                                 </exception>\r
4004                                                 <exception cref="T:System.ArgumentOutOfRangeException">\r
4005                                                         <para>\r
4006                                                                 <paramref name="index"/> &lt; <paramref name="keys"/>.GetLowerBound(0).</para>\r
4007                                                         <para>-or-</para>\r
4008                                                         <para>\r
4009                                                                 <paramref name="length"/> &lt; 0.</para>\r
4010                                                 </exception>\r
4011                                                 <exception cref="T:System.ArgumentException">\r
4012                                                         <para>\r
4013                                                                 <paramref name="items"/> is not a null reference, and <paramref name="keys"/>.GetLowerBound(0) does not equal <paramref name="items"/>.GetLowerBound(0). </para>\r
4014                                                         <para>-or- </para>\r
4015                                                         <para>\r
4016                                                                 <paramref name="index"/> and <paramref name="length"/> do not specify a valid range in <paramref name="keys"/>. </para>\r
4017                                                         <para>-or- </para>\r
4018                                                         <para>\r
4019                                                                 <paramref name="items"/> is not a null reference, and <paramref name="index"/> and <paramref name="length"/> do not specify a valid range in <paramref name="items"/>. </para>\r
4020                                                 </exception>\r
4021                                                 <exception cref="T:System.InvalidOperationException">\r
4022                                                         <para>One or more elements in <paramref name="keys"/> that are used in a comparison do not implement the <see cref="T:System.IComparable"/> interface.</para>\r
4023                                                 </exception>\r
4024                                                 <remarks>\r
4025                                                         <para>This version of <see cref="M:System.Array.Sort(System.Array)"/> is equivalent to <see cref="M:System.Array.Sort(System.Array)"/>(<paramref name="keys"/>, <paramref name="items"/>, <paramref name="index"/>, <paramref name="length"/>, <see langword="null"/>).</para>\r
4026                                                         <para> Each key in <paramref name="keys"/> is\r
4027 required to have\r
4028 a corresponding item in <paramref name="items"/>. The sort is performed according to the\r
4029 order of <paramref name="keys"/> . After a key is repositioned during the sort,\r
4030 the corresponding item in <paramref name="items"/> is similarly\r
4031 repositioned. Therefore, <paramref name="items"/> is sorted according to the arrangement of\r
4032 the corresponding keys in <paramref name="keys"/>. If the sort is not successfully\r
4033 completed, the results are undefined.</para>\r
4034                                                         <para>Each element of <paramref name="keys"/> is\r
4035 required to implement the <see cref="T:System.IComparable"/> interface to\r
4036 be capable of comparisons with every other element in <paramref name="keys"/>.</para>\r
4037                                                 </remarks>\r
4038                                         </Docs>\r
4039                                         <Excluded>0</Excluded>\r
4040                                 </Member>\r
4041                                 <Member MemberName="Sort">\r
4042                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static void Sort(class System.Array array)"/>\r
4043                                         <MemberSignature Language="C#" Value="public static void Sort(Array array);"/>\r
4044                                         <MemberType>Method</MemberType>\r
4045                                         <ReturnValue>\r
4046                                                 <ReturnType>System.Void</ReturnType>\r
4047                                         </ReturnValue>\r
4048                                         <Parameters>\r
4049                                                 <Parameter Name="array" Type="System.Array"/>\r
4050                                         </Parameters>\r
4051                                         <Docs>\r
4052                                                 <summary>\r
4053                                                         <para>Sorts the elements of the specified one-dimensional <see cref="T:System.Array"/>.</para>\r
4054                                                 </summary>\r
4055                                                 <param name="array">A one-dimensional <see cref="T:System.Array"/> to sort.</param>\r
4056                                                 <exception cref="T:System.ArgumentNullException">\r
4057                                                         <paramref name="array"/> is <see langword="null"/>.</exception>\r
4058                                                 <exception cref="T:System.RankException">\r
4059                                                         <paramref name="array"/> has more than one dimension.</exception>\r
4060                                                 <exception cref="T:System.InvalidOperationException">One or more elements in <paramref name="array"/> that are used in a comparison do not implement the <see cref="T:System.IComparable"/> interface.</exception>\r
4061                                                 <remarks>\r
4062                                                         <para>This version of <see cref="M:System.Array.Sort(System.Array)"/> is equivalent to <see cref="M:System.Array.Sort(System.Array)"/>(<paramref name="array"/>, <see langword="null"/>, <paramref name="array"/>.GetLowerBound(0),\r
4063 <paramref name="array"/>.Length, <see langword="null"/>).</para>\r
4064                                                         <para>Each element of <paramref name="array"/> is\r
4065 required to implement\r
4066 the <see cref="T:System.IComparable"/> interface to be capable of comparisons with every other\r
4067 element in array.</para>\r
4068                                                 </remarks>\r
4069                                                 <example>\r
4070                                                         <para>This example demonstrates the <see cref="M:System.Array.Sort(System.Array)"/> method.</para>\r
4071                                                         <code lang="C#">using System;\r
4072 public class ArraySortExample {\r
4073    public static void Main() {\r
4074       string[] strAry = { "All's", "well", "that", "ends", "well" };\r
4075       Console.Write( "The original string array is: " );\r
4076       foreach ( String str in strAry )\r
4077          Console.Write( str + " " );\r
4078       Console.WriteLine();\r
4079       Array.Sort( strAry );\r
4080       Console.Write( "The sorted string array is: " );\r
4081       foreach ( string str in strAry )\r
4082          Console.Write( str + " " );\r
4083    }\r
4084 }\r
4085 </code>\r
4086                                                         <para>The output is</para>\r
4087                                                         <c>\r
4088                                                                 <para>The original string array is: All's well that ends well</para>\r
4089                                                                 <para>The sorted string array is: All's ends that well well</para>\r
4090                                                         </c>\r
4091                                                 </example>\r
4092                                         </Docs>\r
4093                                         <Excluded>0</Excluded>\r
4094                                 </Member>\r
4095                                 <Member MemberName="Sort">\r
4096                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static void Sort(class System.Array keys, class System.Array items)"/>\r
4097                                         <MemberSignature Language="C#" Value="public static void Sort(Array keys, Array items);"/>\r
4098                                         <MemberType>Method</MemberType>\r
4099                                         <ReturnValue>\r
4100                                                 <ReturnType>System.Void</ReturnType>\r
4101                                         </ReturnValue>\r
4102                                         <Parameters>\r
4103                                                 <Parameter Name="keys" Type="System.Array"/>\r
4104                                                 <Parameter Name="items" Type="System.Array"/>\r
4105                                         </Parameters>\r
4106                                         <Docs>\r
4107                                                 <summary>\r
4108                                                         <para>Sorts the specified pair of one-dimensional <see cref="T:System.Array"/> objects (one\r
4109    containing a set of keys and the other containing corresponding items) based on\r
4110    the keys in the first specified <see cref="T:System.Array"/>.</para>\r
4111                                                 </summary>\r
4112                                                 <param name="keys">A one-dimensional <see cref="T:System.Array"/> that contains the keys to sort.</param>\r
4113                                                 <param name="items">\r
4114                                                         <para>A one-dimensional <see cref="T:System.Array"/> that contains the items that correspond to each of element of <paramref name="keys"/>. Specify a null reference to sort only <paramref name="keys"/>.</para>\r
4115                                                 </param>\r
4116                                                 <exception cref="T:System.ArgumentNullException">\r
4117                                                         <para>\r
4118                                                                 <paramref name="keys"/> is <see langword="null"/>. </para>\r
4119                                                 </exception>\r
4120                                                 <exception cref="T:System.RankException">\r
4121                                                         <para>\r
4122                                                                 <paramref name="keys"/> has more than one dimension.</para>\r
4123                                                         <para>-or-</para>\r
4124                                                         <para>\r
4125                                                                 <paramref name="items"/> is not a null reference and has more than one dimension.</para>\r
4126                                                 </exception>\r
4127                                                 <exception cref="T:System.ArgumentException">\r
4128                                                         <para>\r
4129                                                                 <paramref name="items"/> is not a null reference, and <paramref name="keys"/>.GetLowerBound(0) does not equal <paramref name="items"/>.GetLowerBound(0).</para>\r
4130                                                         <para>-or-</para>\r
4131                                                         <para>\r
4132                                                                 <paramref name="items"/> is not a null reference, and <paramref name="keys"/>.Length &gt; <paramref name="items"/>.Length.</para>\r
4133                                                 </exception>\r
4134                                                 <exception cref="T:System.InvalidOperationException">\r
4135                                                         <para>One or more elements in <paramref name="keys"/> that are used in a comparison  do not implement the <see cref="T:System.IComparable"/> interface.</para>\r
4136                                                 </exception>\r
4137                                                 <remarks>\r
4138                                                         <para> This version of <see cref="M:System.Array.Sort(System.Array)"/> is equivalent to <see cref="M:System.Array.Sort(System.Array)"/>(<paramref name="keys"/>, <paramref name="items"/>, <paramref name="keys"/>.GetLowerBound(0), <paramref name="keys"/>.Length, <see langword="null"/>).</para>\r
4139                                                         <para> Each key in <paramref name="keys"/> is required to have\r
4140 a corresponding item in <paramref name="items"/>. The sort is performed according to the\r
4141 order of <paramref name="keys"/> . After a key is repositioned during the sort,\r
4142 the corresponding item in <paramref name="items"/> is similarly repositioned. Only\r
4143 <paramref name="keys"/>.Length elements of \r
4144 <paramref name="items"/> are sorted. Therefore, \r
4145 <paramref name="items"/>\r
4146 is sorted according to the arrangement of the corresponding keys in\r
4147 <paramref name="keys"/>. If\r
4148 the sort is not successfully completed, the results are unspecified.</para>\r
4149                                                         <para>Each element of <paramref name="keys"/> is\r
4150 required to implement\r
4151 the <see cref="T:System.IComparable"/> interface to be capable of comparisons with every other\r
4152 element in <paramref name="keys"/>.</para>\r
4153                                                 </remarks>\r
4154                                                 <example>\r
4155                                                         <para>This example demonstrates the <see cref="M:System.Array.Sort(System.Array)"/> method.</para>\r
4156                                                         <code lang="C#">using System;\r
4157 public class ArraySortExample {\r
4158    public static void Main() {\r
4159       string[] strAry = { "All's", "well", "that", "ends", "well" };\r
4160       int[] intAry = { 3, 4, 0, 1, 2 };\r
4161       Console.Write( "The original string array is: " );\r
4162       foreach ( string str in strAry )\r
4163          Console.Write( str + " " );\r
4164       Console.WriteLine();\r
4165       Console.Write( "The key array is: " );\r
4166       foreach ( int i in intAry )\r
4167          Console.Write( i + " " );\r
4168       Console.WriteLine();\r
4169       Array.Sort( intAry, strAry );\r
4170       Console.Write( "The sorted string array is: " );\r
4171       foreach ( string str in strAry )\r
4172          Console.Write( str + " " );\r
4173    }\r
4174 }\r
4175 </code>\r
4176                                                         <para>The output is</para>\r
4177                                                         <c>\r
4178                                                                 <para>The original string array is: All's well that ends well</para>\r
4179                                                                 <para>The key array is: 3 4 0 1 2</para>\r
4180                                                                 <para>The sorted string array is: that ends well All's well</para>\r
4181                                                         </c>\r
4182                                                 </example>\r
4183                                         </Docs>\r
4184                                         <Excluded>0</Excluded>\r
4185                                 </Member>\r
4186                                 <Member MemberName="Sort">\r
4187                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static void Sort(class System.Array array, int32 index, int32 length)"/>\r
4188                                         <MemberSignature Language="C#" Value="public static void Sort(Array array, int index, int length);"/>\r
4189                                         <MemberType>Method</MemberType>\r
4190                                         <ReturnValue>\r
4191                                                 <ReturnType>System.Void</ReturnType>\r
4192                                         </ReturnValue>\r
4193                                         <Parameters>\r
4194                                                 <Parameter Name="array" Type="System.Array"/>\r
4195                                                 <Parameter Name="index" Type="System.Int32"/>\r
4196                                                 <Parameter Name="length" Type="System.Int32"/>\r
4197                                         </Parameters>\r
4198                                         <Docs>\r
4199                                                 <summary>\r
4200                                                         <para>Sorts the elements in the specified range of the\r
4201       specified one-dimensional <see cref="T:System.Array"/>.</para>\r
4202                                                 </summary>\r
4203                                                 <param name="array">A one-dimensional <see cref="T:System.Array"/> to sort.</param>\r
4204                                                 <param name="index">A <see cref="T:System.Int32"/> that contains the index at which sorting starts.</param>\r
4205                                                 <param name="length">A <see cref="T:System.Int32"/> that contains the number of elements to sort.</param>\r
4206                                                 <exception cref="T:System.ArgumentNullException">\r
4207                                                         <paramref name="array"/> is <see langword="null"/>. </exception>\r
4208                                                 <exception cref="T:System.RankException">\r
4209                                                         <paramref name="array"/> has more than one dimension. </exception>\r
4210                                                 <exception cref="T:System.ArgumentOutOfRangeException">\r
4211                                                         <para>\r
4212                                                                 <paramref name="index"/> &lt; <paramref name="array"/>.GetLowerBound(0).</para>\r
4213                                                         <para>-or-</para>\r
4214                                                         <para>\r
4215                                                                 <paramref name="length"/> &lt; 0.</para>\r
4216                                                 </exception>\r
4217                                                 <exception cref="T:System.ArgumentException">\r
4218                                                         <para>\r
4219                                                                 <paramref name="index"/> and <paramref name="length"/> do not specify a valid range in <paramref name="array"/>.</para>\r
4220                                                 </exception>\r
4221                                                 <exception cref="T:System.InvalidOperationException">\r
4222                                                         <para>One or more elements in <paramref name="array"/> that are used in a comparison do not implement the <see cref="T:System.IComparable"/> interface.</para>\r
4223                                                 </exception>\r
4224                                                 <remarks>\r
4225                                                         <para>This version of <see cref="M:System.Array.Sort(System.Array)"/> is equivalent to <see cref="M:System.Array.Sort(System.Array)"/>(<paramref name="array"/>,\r
4226 <see langword="null"/> , <paramref name="index"/>, <paramref name="length"/>, \r
4227 <see langword="null"/>).</para>\r
4228                                                         <para>Each element of <paramref name="array"/> is\r
4229 required to implement\r
4230 the <see cref="T:System.IComparable"/> interface to be capable of comparisons with every other\r
4231 element in <paramref name="array"/>. If the sort is not successfully completed, the\r
4232 results are unspecified.</para>\r
4233                                                 </remarks>\r
4234                                         </Docs>\r
4235                                         <Excluded>0</Excluded>\r
4236                                 </Member>\r
4237                                 <Member MemberName="Sort&lt;K,V&gt;">\r
4238                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static void Sort&lt;K,V&gt;(!!0[] keys, !!1[] items, int32 index, int32 length, class System.Collections.Generic.IComparer`1&lt;!!0&gt; comparer)"/>\r
4239                                         <MemberSignature Language="C#" Value="public static void Sort&lt;K,V&gt;(K[] keys, V[] items, int index, int length, IComparer&lt;K&gt; comparer)"/>\r
4240                                         <MemberType>Method</MemberType>\r
4241                                         <ReturnValue>\r
4242                                                 <ReturnType>System.Void</ReturnType>\r
4243                                         </ReturnValue>\r
4244                                         <Parameters>\r
4245                                                 <Parameter Name="keys" Type="K[]"/>\r
4246                                                 <Parameter Name="items" Type="V[]"/>\r
4247                                                 <Parameter Name="index" Type="System.Int32"/>\r
4248                                                 <Parameter Name="length" Type="System.Int32"/>\r
4249                                                 <Parameter Name="comparer" Type="System.Collections.Generic.IComparer&lt;K&gt;"/>\r
4250                                         </Parameters>\r
4251                                         <Docs>\r
4252                                                 <summary>\r
4253                                                         <para>Sorts a range of elements in a pair of arrays based on the keys in the first array using the specified <see cref="T:System.Collections.Generic.IComparer&lt;K&gt;"/>.</para>\r
4254                                                 </summary>\r
4255                                                 <param name="keys">\r
4256                                                         <para>The array that contains the keys to sort.</para>\r
4257                                                 </param>\r
4258                                                 <param name="items">\r
4259                                                         <para>The array that contains the items that correspond to each of the keys in <paramref name="keys"/>.</para>\r
4260                                                         <para>-or-</para>\r
4261                                                         <para>\r
4262                                                                 <see langword="null"/> to sort only the <paramref name="keys"/> array.</para>\r
4263                                                 </param>\r
4264                                                 <param name="index">The starting index of the range to sort.</param>\r
4265                                                 <param name="length">The number of elements in the range to sort.</param>\r
4266                                                 <param name="comparer">\r
4267                                                         <para>The <see cref="T:System.Collections.Generic.IComparer&lt;K&gt;"/> implementation to use when comparing elements.</para>\r
4268                                                         <para>-or-</para>\r
4269                                                         <para>\r
4270                                                                 <see langword="null"/>  to use the <see cref="T:System.IComparable&lt;K&gt;"/> or <see cref="T:System.IComparable"/> implementation of each element.</para>\r
4271                                                 </param>\r
4272                                                 <exception cref="T:System.ArgumentException">\r
4273                                                         <para>\r
4274                                                                 <paramref name="index"/> and <paramref name="length"/> do not specify a valid range in <paramref name="keys"/>. </para>\r
4275                                                         <para>-or- </para>\r
4276                                                         <para>\r
4277                                                                 <paramref name="items"/> is not <see langword="null"/>, and <paramref name="index"/> and <paramref name="length"/> do not specify a valid range in <paramref name="items"/>.</para>\r
4278                                                 </exception>\r
4279                                                 <exception cref="T:System.ArgumentNullException">\r
4280                                                         <para>\r
4281                                                                 <paramref name="keys"/> is <see langword="null"/>.</para>\r
4282                                                 </exception>\r
4283                                                 <exception cref="T:System.ArgumentOutOfRangeException">\r
4284                                                         <para>\r
4285                                                                 <paramref name="index"/> is less than zero.</para>\r
4286                                                         <para>-or-</para>\r
4287                                                         <para>\r
4288                                                                 <paramref name="length"/> is less than zero.</para>\r
4289                                                 </exception>\r
4290                                                 <exception cref="T:System.InvalidOperationException">\r
4291                                                         <para>\r
4292                                                                 <paramref name="comparer"/> is <see langword="null"/>, and one or more elements in <paramref name="keys"/> that are used in a comparison do not implement the <see cref="T:System.IComparable&lt;K&gt;"/> or <see cref="T: System.IComparable"/> interface.</para>\r
4293                                                 </exception>\r
4294                                                 <remarks>\r
4295                                                         <para>If <paramref name="items"/> is non-null, each key in <paramref name="keys"/> is required to have\r
4296    a corresponding item in <paramref name="items"/>. The sort is performed according to the\r
4297    order of <paramref name="keys"/>. After a key is repositioned during the sort,\r
4298    the corresponding item in <paramref name="items"/> is similarly repositioned. Only\r
4299 <paramref name="keys"/>.Length elements of <paramref name="items"/> will be sorted. Therefore, \r
4300 <paramref name="items"/> is sorted according to the arrangement of\r
4301    the corresponding keys in <paramref name="keys"/>. If the sort is not successfully\r
4302    completed, the results are undefined.</para>\r
4303                                                         <para>If <paramref name="comparer"/> is a null reference, each element of <paramref name="keys"/> is required to implement the <see cref="T:System.IComparable&lt;K&gt;"/> or <see cref="T:System.IComparable"/> interface to be capable of comparisons\r
4304 with every other element in <paramref name="keys"/>.</para>\r
4305                                                 </remarks>\r
4306                                         </Docs>\r
4307                                         <Excluded>0</Excluded>\r
4308                                 </Member>\r
4309                                 <Member MemberName="Sort&lt;K,V&gt;">\r
4310                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static void Sort&lt;K,V&gt;(!!0[] keys, !!1[] items, class System.Collections.Generic.IComparer`1&lt;!!0&gt; comparer)"/>\r
4311                                         <MemberSignature Language="C#" Value="public static void Sort&lt;K,V&gt;(K[] keys, V[] items, IComparer&lt;K&gt; comparer)"/>\r
4312                                         <MemberType>Method</MemberType>\r
4313                                         <ReturnValue>\r
4314                                                 <ReturnType>System.Void</ReturnType>\r
4315                                         </ReturnValue>\r
4316                                         <Parameters>\r
4317                                                 <Parameter Name="keys" Type="K[]"/>\r
4318                                                 <Parameter Name="items" Type="V[]"/>\r
4319                                                 <Parameter Name="comparer" Type="System.Collections.Generic.IComparer&lt;K&gt;"/>\r
4320                                         </Parameters>\r
4321                                         <Docs>\r
4322                                                 <summary>\r
4323                                                         <para>Sorts a pair of arrays based on the keys in the first array, using the specified <see cref="T:System.Collections.Generic.IComparer"/>.</para>\r
4324                                                 </summary>\r
4325                                                 <param name="keys">\r
4326                                                         <para>The array that contains the keys to sort.</para>\r
4327                                                 </param>\r
4328                                                 <param name="items">\r
4329                                                         <para>The array that contains the items that correspond to each of the keys in <paramref name="keys"/>.</para>\r
4330                                                         <para>-or-</para>\r
4331                                                         <para>\r
4332                                                                 <see langword="null"/> to sort only the <paramref name="keys"/> array.</para>\r
4333                                                 </param>\r
4334                                                 <param name="comparer">\r
4335                                                         <para>The <see cref="T:System.Collections.Generic.IComparer&lt;K&gt;"/> implementation to use when comparing elements.</para>\r
4336                                                         <para>-or-</para>\r
4337                                                         <para>\r
4338                                                                 <see langword="null"/>  to use the <see cref="T:System.IComparable&lt;K&gt;"/> or <see cref="T:System.IComparable"/> implementation of each element.</para>\r
4339                                                 </param>\r
4340                                                 <exception cref="T:System.ArgumentNullException">\r
4341                                                         <para>\r
4342                                                                 <paramref name="keys"/> is <see langword="null"/>.</para>\r
4343                                                 </exception>\r
4344                                                 <exception cref="T:System.ArgumentException">\r
4345                                                         <para>\r
4346                                                                 <paramref name="items"/> is not <see langword="null"/>, and  the length of <paramref name="keys"/> does not match the length of <paramref name="items"/>.</para>\r
4347                                                 </exception>\r
4348                                                 <exception cref="T:System.InvalidOperationException">\r
4349                                                         <para>\r
4350                                                                 <paramref name="comparer"/> is <see langword="null"/>, and one or more elements in <paramref name="keys"/> that are used in a comparison  do not implement the <see cref="T:System.IComparable&lt;K&gt;"/> or <see cref="T: System.IComparable"/> interface.</para>\r
4351                                                 </exception>\r
4352                                                 <remarks>\r
4353                                                         <para>This version of <see cref="M:System.Array.Sort"/>  is equivalent to <see cref="M:System.Array.Sort&lt;K,V&gt;"/>\r
4354                                                                 <see langword="("/>\r
4355                                                                 <paramref name="keys"/>\r
4356                                                                 <see langword=", "/>\r
4357                                                                 <paramref name="items"/>\r
4358                                                                 <see langword=", "/>\r
4359                                                                 <see langword="0, "/>\r
4360                                                                 <paramref name="keys"/>\r
4361                                                                 <see langword=".Length"/>\r
4362                                                                 <see langword=", "/>\r
4363                                                                 <paramref name="comparer"/>\r
4364                                                                 <see langword=")"/>.</para>\r
4365                                                         <para>If <paramref name="items"/> is non-null, each key in <paramref name="keys"/> is required to have\r
4366    a corresponding item in <paramref name="items"/>. The sort is performed according to the\r
4367    order of <paramref name="keys"/>. After a key is repositioned during the sort,\r
4368    the corresponding item in <paramref name="items"/> is similarly repositioned. Only\r
4369 <paramref name="keys"/>.Length elements of <paramref name="items"/> will be sorted. Therefore, \r
4370 <paramref name="items"/> is sorted according to the arrangement of\r
4371    the corresponding keys in <paramref name="keys"/>. If the sort is not successfully\r
4372    completed, the results are unspecified.</para>\r
4373                                                         <para>If <paramref name="comparer"/> is a null reference, each element of <paramref name="keys"/> is required to implement the <see cref="T:System.IComparable&lt;K&gt;"/> or <see cref="T:System.IComparable"/> interface to be capable of comparisons\r
4374 with every other element in <paramref name="keys"/>.</para>\r
4375                                                 </remarks>\r
4376                                         </Docs>\r
4377                                         <Excluded>0</Excluded>\r
4378                                 </Member>\r
4379                                 <Member MemberName="Sort&lt;K,V&gt;">\r
4380                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static void Sort&lt;K,V&gt;(!!0[] keys, !!1[] items, int32 index, int32 length)"/>\r
4381                                         <MemberSignature Language="C#" Value="public static void Sort&lt;K,V&gt;(K[] keys, V[] items, int index, int length)"/>\r
4382                                         <MemberType>Method</MemberType>\r
4383                                         <ReturnValue>\r
4384                                                 <ReturnType>System.Void</ReturnType>\r
4385                                         </ReturnValue>\r
4386                                         <Parameters>\r
4387                                                 <Parameter Name="keys" Type="K[]"/>\r
4388                                                 <Parameter Name="items" Type="V[]"/>\r
4389                                                 <Parameter Name="index" Type="System.Int32"/>\r
4390                                                 <Parameter Name="length" Type="System.Int32"/>\r
4391                                         </Parameters>\r
4392                                         <Docs>\r
4393                                                 <summary>\r
4394                                                         <para>Sorts a range of elements in a pair of arrays based on the keys in the first array, using the <see cref="T:System.IComparable&lt;K&gt;"/> or <see cref="T:System.IComparable"/>  implementation of each key.</para>\r
4395                                                 </summary>\r
4396                                                 <param name="keys">\r
4397                                                         <para>The array that contains the keys to sort.</para>\r
4398                                                 </param>\r
4399                                                 <param name="items">\r
4400                                                         <para>The array that contains the items that correspond to each of the keys in <paramref name="keys"/>.</para>\r
4401                                                         <para>-or-</para>\r
4402                                                         <para>\r
4403                                                                 <see langword="null"/> to sort only the <paramref name="keys"/> array.</para>\r
4404                                                 </param>\r
4405                                                 <param name="index">The starting index of the range to sort.</param>\r
4406                                                 <param name="length">The number of elements in the range to sort.</param>\r
4407                                                 <exception cref="T:System.ArgumentException">\r
4408                                                         <para>\r
4409                                                                 <paramref name="index"/> and <paramref name="length"/> do not specify a valid range in <paramref name="keys"/>. </para>\r
4410                                                         <para>-or- </para>\r
4411                                                         <para>\r
4412                                                                 <paramref name="items"/> is not <see langword="null"/>, and <paramref name="index"/> and <paramref name="length"/> do not specify a valid range in <paramref name="items"/>.</para>\r
4413                                                 </exception>\r
4414                                                 <exception cref="T:System.ArgumentNullException">\r
4415                                                         <para>\r
4416                                                                 <paramref name="keys"/> is <see langword="null"/>.</para>\r
4417                                                 </exception>\r
4418                                                 <exception cref="T:System.ArgumentOutOfRangeException">\r
4419                                                         <para>\r
4420                                                                 <paramref name="index"/> is less than zero.</para>\r
4421                                                         <para>-or-</para>\r
4422                                                         <para>\r
4423                                                                 <paramref name="length"/> is less than zero.</para>\r
4424                                                 </exception>\r
4425                                                 <exception cref="T:System.InvalidOperationException">\r
4426                                                         <para>One or more elements in <paramref name="keys"/> that are used in a comparison are the null reference or do not implement the <see cref="T:System.IComparable&lt;K&gt;"/> or <see cref="T: System.IComparable"/> interface.</para>\r
4427                                                 </exception>\r
4428                                                 <remarks>\r
4429                                                         <para>If <paramref name="items"/> is non-null, each key in <paramref name="keys"/> is required to have\r
4430    a corresponding item in <paramref name="items"/>. When a key is repositioned during the sorting,\r
4431    the corresponding item in <paramref name="items"/> is similarly repositioned. Therefore, <paramref name="items"/> is sorted according to the arrangement of\r
4432    the corresponding keys in <paramref name="keys"/>. </para>\r
4433                                                         <para>If the sort is not successfully completed, the results are unspecified.</para>\r
4434                                                         <para>Each key within the specified range of elements in <paramref name="keys"/> must implement the <see cref="T:System.IComparable&lt;K&gt;"/> or <see cref="T:System.IComparable"/> interface to be capable of comparisons with every other key.</para>\r
4435                                                         <para>This implementation performs an unstable sort; that is, if two elements are equal, their order might not be preserved. In contrast, a stable sort preserves the order of elements that are equal.</para>\r
4436                                                 </remarks>\r
4437                                         </Docs>\r
4438                                         <Excluded>0</Excluded>\r
4439                                 </Member>\r
4440                                 <Member MemberName="Sort&lt;K,V&gt;">\r
4441                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static void Sort&lt;K,V&gt;(!!0[] keys, !!1[] items)"/>\r
4442                                         <MemberSignature Language="C#" Value="public static void Sort&lt;K,V&gt;(K[] keys, V[] items)"/>\r
4443                                         <MemberType>Method</MemberType>\r
4444                                         <ReturnValue>\r
4445                                                 <ReturnType>System.Void</ReturnType>\r
4446                                         </ReturnValue>\r
4447                                         <Parameters>\r
4448                                                 <Parameter Name="keys" Type="K[]"/>\r
4449                                                 <Parameter Name="items" Type="V[]"/>\r
4450                                         </Parameters>\r
4451                                         <Docs>\r
4452                                                 <summary>\r
4453                                                         <para>Sorts a pair of arrays based on the keys in the first array using the <see cref="T:System.IComparable"/>  implementation of each key.</para>\r
4454                                                 </summary>\r
4455                                                 <param name="keys">\r
4456                                                         <para>The array that contains the keys to sort.</para>\r
4457                                                 </param>\r
4458                                                 <param name="items">\r
4459                                                         <para>The array that contains the items that correspond to each of the keys in <paramref name="keys"/>.</para>\r
4460                                                         <para>-or-</para>\r
4461                                                         <para>\r
4462                                                                 <see langword="null"/> to sort only the <paramref name="keys"/> array.</para>\r
4463                                                 </param>\r
4464                                                 <exception cref="T:System.ArgumentException">\r
4465                                                         <para>\r
4466                                                                 <paramref name="items"/> is not <see langword="null"/>, and  the length of <paramref name="keys"/> does not equal the length of <paramref name="items"/>.</para>\r
4467                                                 </exception>\r
4468                                                 <exception cref="T:System.ArgumentNullException">\r
4469                                                         <para>\r
4470                                                                 <paramref name="keys"/> is <see langword="null"/>.</para>\r
4471                                                 </exception>\r
4472                                                 <exception cref="T:System.InvalidOperationException">\r
4473                                                         <para>One or more elements in <paramref name="keys"/> that are used in a comparison  are the null reference or do not implement the <see cref="T:System.IComparable&lt;K&gt;"/> or <see cref="T: System.IComparable"/> interface.</para>\r
4474                                                 </exception>\r
4475                                                 <remarks>\r
4476                                                         <para>If <paramref name="items"/> is non-null, each key in <paramref name="keys"/> is required to have\r
4477    a corresponding item in <paramref name="items"/>. When a key is repositioned during the sorting,\r
4478    the corresponding item in <paramref name="items"/> is similarly repositioned. Therefore, <paramref name="items"/> is sorted according to the arrangement of\r
4479    the corresponding keys in <paramref name="keys"/>. </para>\r
4480                                                         <para>Each key in <paramref name="keys"/> must implement the <see cref="T:System.IComparable&lt;K&gt;"/> or <see cref="T:System.IComparable"/> interface to be capable of comparisons with every other key.</para>\r
4481                                                         <para>If the sort is not successfully completed, the results are undefined.</para>\r
4482                                                         <para>This implementation performs an unstable sort; that is, if two elements are equal, their order might not be preserved. In contrast, a stable sort preserves the order of elements that are equal.</para>\r
4483                                                 </remarks>\r
4484                                         </Docs>\r
4485                                         <Excluded>0</Excluded>\r
4486                                 </Member>\r
4487                                 <Member MemberName="Sort&lt;T&gt;">\r
4488                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static void Sort&lt;T&gt;(!!0[] array, int32 index, int32 length, class System.Collections.Generic.IComparer`1&lt;!!0&gt; comparer)"/>\r
4489                                         <MemberSignature Language="C#" Value="public static void Sort&lt;T&gt;(T[] array, int index, int length, IComparer&lt;T&gt; comparer)"/>\r
4490                                         <MemberType>Method</MemberType>\r
4491                                         <ReturnValue>\r
4492                                                 <ReturnType>System.Void</ReturnType>\r
4493                                         </ReturnValue>\r
4494                                         <Parameters>\r
4495                                                 <Parameter Name="array" Type="T[]"/>\r
4496                                                 <Parameter Name="index" Type="System.Int32"/>\r
4497                                                 <Parameter Name="length" Type="System.Int32"/>\r
4498                                                 <Parameter Name="comparer" Type="System.Collections.Generic.IComparer&lt;T&gt;"/>\r
4499                                         </Parameters>\r
4500                                         <Docs>\r
4501                                                 <summary>\r
4502                                                         <para>Sorts the elements in a range of elements in an array using the specified comparer.</para>\r
4503                                                 </summary>\r
4504                                                 <param name="array">\r
4505                                                         <para>The array to sort.</para>\r
4506                                                 </param>\r
4507                                                 <param name="index">The starting index of the range to sort.</param>\r
4508                                                 <param name="length">The number of elements in the range to sort.</param>\r
4509                                                 <param name="comparer">\r
4510                                                         <para>The <see cref="T:System.Collections.Generic.IComparer&lt;K&gt;"/> implementation to use when comparing elements.</para>\r
4511                                                         <para>-or-</para>\r
4512                                                         <para>\r
4513                                                                 <see langword="null"/>  to use the <see cref="T:System.IComparable&lt;K&gt;"/> or <see cref="T:System.IComparable"/> implementation of each element.</para>\r
4514                                                 </param>\r
4515                                                 <exception cref="T:System.ArgumentNullException">\r
4516                                                         <para>\r
4517                                                                 <paramref name="array"/> is <see langword="null"/>.</para>\r
4518                                                 </exception>\r
4519                                                 <exception cref="T:System.ArgumentOutOfRangeException">\r
4520                                                         <para>\r
4521                                                                 <paramref name="index"/> is less than zero.</para>\r
4522                                                         <para>-or-</para>\r
4523                                                         <para>\r
4524                                                                 <paramref name="length"/> is less than zero.</para>\r
4525                                                 </exception>\r
4526                                                 <exception cref="T:System.ArgumentException">\r
4527                                                         <para>\r
4528                                                                 <paramref name="index"/> and <paramref name="length"/> do not specify a valid range in <paramref name="array"/>. </para>\r
4529                                                 </exception>\r
4530                                                 <exception cref="T:System.InvalidOperationException">\r
4531                                                         <para>\r
4532                                                                 <paramref name="comparer"/> is <see langword="null"/>, and one or more elements in <paramref name="array"/> that are used in a comparison do not implement the <see cref="T:System.IComparable&lt;K&gt;"/> or <see cref="T: System.IComparable"/> interface.</para>\r
4533                                                 </exception>\r
4534                                                 <remarks>\r
4535                                                         <para>If <paramref name="comparer"/> is null, each element within the specified range of elements in <paramref name="array"/> must implement the <see cref="T:System.IComparable"/> interface to be capable of comparisons with every other element in <paramref name="array"/>.</para>\r
4536                                                         <para>If the sort is not successfully completed, the results are undefined.</para>\r
4537                                                         <para>This implementation performs an unstable sort; that is, if two elements are equal, their order might not be preserved. In contrast, a stable sort preserves the order of elements that are equal.</para>\r
4538                                                 </remarks>\r
4539                                         </Docs>\r
4540                                         <Excluded>0</Excluded>\r
4541                                 </Member>\r
4542                                 <Member MemberName="Sort&lt;T&gt;">\r
4543                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static void Sort&lt;T&gt;(!!0[] array, class System.Collections.Generic.IComparer`1&lt;!!0&gt; comparer)"/>\r
4544                                         <MemberSignature Language="C#" Value="public static void Sort&lt;T&gt;(T[] array, IComparer&lt;T&gt; comparer)"/>\r
4545                                         <MemberType>Method</MemberType>\r
4546                                         <ReturnValue>\r
4547                                                 <ReturnType>System.Void</ReturnType>\r
4548                                         </ReturnValue>\r
4549                                         <Parameters>\r
4550                                                 <Parameter Name="array" Type="T[]"/>\r
4551                                                 <Parameter Name="comparer" Type="System.Collections.Generic.IComparer&lt;T&gt;"/>\r
4552                                         </Parameters>\r
4553                                         <Docs>\r
4554                                                 <summary>\r
4555                                                         <para>Sorts the elements in an array using the specified comparer.</para>\r
4556                                                 </summary>\r
4557                                                 <param name="array">\r
4558                                                         <para>The array to sort.</para>\r
4559                                                 </param>\r
4560                                                 <param name="comparer">\r
4561                                                         <para>The <see cref="T:System.Collections.Generic.IComparer&lt;T&gt;"/> implementation to use when comparing elements.</para>\r
4562                                                         <para>-or-</para>\r
4563                                                         <para>\r
4564                                                                 <see langword="null"/>  to use the <see cref="T:System.IComparable&lt;T&gt;"/> or <see cref="T:System.IComparable"/> implementation of each element.</para>\r
4565                                                 </param>\r
4566                                                 <exception cref="T:System.ArgumentNullException">\r
4567                                                         <para>\r
4568                                                                 <paramref name="array"/> is <see langword="null"/>.</para>\r
4569                                                 </exception>\r
4570                                                 <exception cref="T:System.InvalidOperationException">\r
4571                                                         <para>\r
4572                                                                 <paramref name="comparer"/> is <see langword="null"/>, and one or more elements in <paramref name="array"/> that are used in a comparison do not implement the <see cref="T:System.IComparable&lt;T&gt;"/> or <see cref="T: System.IComparable"/> interface.</para>\r
4573                                                 </exception>\r
4574                                                 <remarks>\r
4575                                                         <para>If <paramref name="comparer"/> is null, each element of <paramref name="array"/> must implement the <see cref="T:System.IComparable&lt;T&gt;"/> or <see cref="T:System.IComparable"/> interface to be capable of comparisons with every other element in <paramref name="array"/>.</para>\r
4576                                                         <para>If the sort is not successfully completed, the results are undefined.</para>\r
4577                                                         <para>This implementation performs an unstable sort; that is, if two elements are equal, their order might not be preserved. In contrast, a stable sort preserves the order of elements that are equal.</para>\r
4578                                                 </remarks>\r
4579                                         </Docs>\r
4580                                         <Excluded>0</Excluded>\r
4581                                 </Member>\r
4582                                 <Member MemberName="Sort&lt;T&gt;">\r
4583                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static void Sort&lt;T&gt;(!!0[] array, class System.Comparison`1&lt;!!0&gt; comparison)"/>\r
4584                                         <MemberSignature Language="C#" Value="public static void Sort&lt;T&gt;(T[] array, Comparison&lt;T&gt; comparison)"/>\r
4585                                         <MemberType>Method</MemberType>\r
4586                                         <ReturnValue>\r
4587                                                 <ReturnType>System.Void</ReturnType>\r
4588                                         </ReturnValue>\r
4589                                         <Parameters>\r
4590                                                 <Parameter Name="array" Type="T[]"/>\r
4591                                                 <Parameter Name="comparison" Type="System.Comparison&lt;T&gt;"/>\r
4592                                         </Parameters>\r
4593                                         <Docs>\r
4594                                                 <summary>\r
4595                                                         <para>Sorts the elements in an array using the specified comparison.</para>\r
4596                                                 </summary>\r
4597                                                 <param name="array">\r
4598                                                         <para>The array to sort.</para>\r
4599                                                 </param>\r
4600                                                 <param name="comparison">\r
4601                                                         <para>The <see cref="T:System.Comparison&lt;T&gt;"/> to use when comparing elements.</para>\r
4602                                                 </param>\r
4603                                                 <exception cref="T:System.ArgumentNullException">\r
4604                                                         <para>\r
4605                                                                 <paramref name="array"/> is <see langword="null"/>.</para>\r
4606                                                         <para>-or-</para>\r
4607                                                         <para>\r
4608                                                                 <paramref name="comparison"/> is <see langword="null"/>.</para>\r
4609                                                 </exception>\r
4610                                                 <remarks>\r
4611                                                         <para>If the sort is not successfully completed, the results are undefined.</para>\r
4612                                                         <para>This implementation performs an unstable sort; that is, if two elements are equal, their order might not be preserved. In contrast, a stable sort preserves the order of elements that are equal.</para>\r
4613                                                 </remarks>\r
4614                                         </Docs>\r
4615                                         <Excluded>0</Excluded>\r
4616                                 </Member>\r
4617                                 <Member MemberName="Sort&lt;T&gt;">\r
4618                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static void Sort&lt;T&gt;(!!0[] array)"/>\r
4619                                         <MemberSignature Language="C#" Value="public static void Sort&lt;T&gt;(T[] array)"/>\r
4620                                         <MemberType>Method</MemberType>\r
4621                                         <ReturnValue>\r
4622                                                 <ReturnType>System.Void</ReturnType>\r
4623                                         </ReturnValue>\r
4624                                         <Parameters>\r
4625                                                 <Parameter Name="array" Type="T[]"/>\r
4626                                         </Parameters>\r
4627                                         <Docs>\r
4628                                                 <summary>\r
4629                                                         <para>Sorts the elements in an entire array using the <see cref="T:System.IComparable&lt;T&gt;"/> or <see cref="T:System.IComparable"/> implementation of each element of that array.</para>\r
4630                                                 </summary>\r
4631                                                 <param name="array">\r
4632                                                         <para>The array to sort.</para>\r
4633                                                 </param>\r
4634                                                 <exception cref="T:System.ArgumentNullException">\r
4635                                                         <para>\r
4636                                                                 <paramref name="array"/> is <see langword="null"/>.</para>\r
4637                                                 </exception>\r
4638                                                 <exception cref="T:System.InvalidOperationException">\r
4639                                                         <para>One or more elements in <paramref name="array"/> that are used in a comparison are the null reference or do not implement the <see cref="T:System.IComparable&lt;T&gt;"/> or <see cref="T: System.IComparable"/> interface.</para>\r
4640                                                 </exception>\r
4641                                                 <remarks>\r
4642                                                         <para>Each element of <paramref name="array"/> is required to implement the <see cref="T:System.IComparable&lt;T&gt;"/> or <see cref="T:System.IComparable"/> interface to be capable of comparisons with every other element in <paramref name="array"/>.</para>\r
4643                                                         <para>If the sort is not successfully completed, the results are undefined.</para>\r
4644                                                         <para>This implementation performs an unstable sort; that is, if two elements are equal, their order might not be preserved. In contrast, a stable sort preserves the order of elements that are equal.</para>\r
4645                                                 </remarks>\r
4646                                         </Docs>\r
4647                                         <Excluded>0</Excluded>\r
4648                                 </Member>\r
4649                                 <Member MemberName="Sort&lt;T&gt;">\r
4650                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static void Sort&lt;T&gt;(!!0[] array, int32 index, int32 length)"/>\r
4651                                         <MemberSignature Language="C#" Value="public static void Sort&lt;T&gt;(T[] array, int index, int length)"/>\r
4652                                         <MemberType>Method</MemberType>\r
4653                                         <ReturnValue>\r
4654                                                 <ReturnType>System.Void</ReturnType>\r
4655                                         </ReturnValue>\r
4656                                         <Parameters>\r
4657                                                 <Parameter Name="array" Type="T[]"/>\r
4658                                                 <Parameter Name="index" Type="System.Int32"/>\r
4659                                                 <Parameter Name="length" Type="System.Int32"/>\r
4660                                         </Parameters>\r
4661                                         <Docs>\r
4662                                                 <summary>\r
4663                                                         <para>Sorts an array using the <see cref="T:System.IComparable&lt;T&gt;"/> or <see cref="T:System.IComparable"/> implementation of each element of that array.</para>\r
4664                                                 </summary>\r
4665                                                 <param name="array">\r
4666                                                         <para>The array to sort.</para>\r
4667                                                 </param>\r
4668                                                 <param name="index">The starting index of the range to sort.</param>\r
4669                                                 <param name="length">The number of elements in the range to sort.</param>\r
4670                                                 <exception cref="T:System.ArgumentException">\r
4671                                                         <para>\r
4672                                                                 <paramref name="index"/> and <paramref name="length"/> do not specify a valid range in <paramref name="array"/>. </para>\r
4673                                                 </exception>\r
4674                                                 <exception cref="T:System.ArgumentNullException">\r
4675                                                         <para>\r
4676                                                                 <paramref name="array"/> is <see langword="null"/>.</para>\r
4677                                                 </exception>\r
4678                                                 <exception cref="T:System.ArgumentOutOfRangeException">\r
4679                                                         <para>\r
4680                                                                 <paramref name="index"/> is less than zero.</para>\r
4681                                                         <para>-or-</para>\r
4682                                                         <para>\r
4683                                                                 <paramref name="length"/> is less than zero.</para>\r
4684                                                 </exception>\r
4685                                                 <exception cref="T:System.InvalidOperationException">\r
4686                                                         <para>One or more elements in <paramref name="array"/> that are used in a comparison do not implement the <see cref="T:System.IComparable&lt;T&gt;"/> or <see cref="T: System.IComparable"/> interface.</para>\r
4687                                                 </exception>\r
4688                                                 <remarks>\r
4689                                                         <para>Each element within the specified range of elements in <paramref name="array"/> must implement the <see cref="T:System.IComparable&lt;T&gt;"/> or <see cref="T:System.IComparable"/> interface to be capable of comparisons with every other element in <paramref name="array"/>.</para>\r
4690                                                         <para>If the sort is not successfully completed, the results are undefined.</para>\r
4691                                                         <para>This implementation performs an unstable sort; that is, if two elements are equal, their order might not be preserved. In contrast, a stable sort preserves the order of elements that are equal.</para>\r
4692                                                 </remarks>\r
4693                                         </Docs>\r
4694                                         <Excluded>0</Excluded>\r
4695                                 </Member>\r
4696                                 <Member MemberName="SyncRoot">\r
4697                                         <MemberSignature Language="ILAsm" Value=".property public object SyncRoot { public hidebysig virtual abstract specialname object get_SyncRoot() }"/>\r
4698                                         <MemberSignature Language="C#" Value="public object SyncRoot { get; }"/>\r
4699                                         <MemberType>Property</MemberType>\r
4700                                         <ReturnValue>\r
4701                                                 <ReturnType>System.Object</ReturnType>\r
4702                                         </ReturnValue>\r
4703                                         <Parameters/>\r
4704                                         <Docs>\r
4705                                                 <summary>Implemented to support the <see cref="T:System.Collections.ICollection"/> interface. [Note: For more information, see <see cref="M:System.Collections.ICollection.SyncRoot"/>.]</summary>\r
4706                                         </Docs>\r
4707                                         <Excluded>0</Excluded>\r
4708                                 </Member>\r
4709                                 <Member MemberName="System.Collections.ICollection.Count">\r
4710                                         <MemberSignature Language="ILAsm" Value=".property int32 ICollection.Count { public hidebysig virtual abstract specialname int32 get_ICollection.Count() }"/>\r
4711                                         <MemberSignature Language="C#" Value="int ICollection.Count { get; }"/>\r
4712                                         <MemberType>Property</MemberType>\r
4713                                         <ReturnValue>\r
4714                                                 <ReturnType>System.Int32</ReturnType>\r
4715                                         </ReturnValue>\r
4716                                         <Parameters/>\r
4717                                         <Docs>\r
4718                                                 <summary>Implemented to support the <see cref="T:System.Collections.ICollection"/> interface. [Note: For more information, see <see cref="M:System.Collections.ICollection.Count"/>.]</summary>\r
4719                                         </Docs>\r
4720                                         <Excluded>0</Excluded>\r
4721                                 </Member>\r
4722                                 <Member MemberName="System.Collections.IList.Add">\r
4723                                         <MemberSignature Language="ILAsm" Value=".method private final hidebysig virtual int32 System.Collections.IList.Add(object value)"/>\r
4724                                         <MemberSignature Language="C#" Value="int IList.Add(object value);"/>\r
4725                                         <MemberType>Method</MemberType>\r
4726                                         <ReturnValue>\r
4727                                                 <ReturnType>System.Int32</ReturnType>\r
4728                                         </ReturnValue>\r
4729                                         <Parameters>\r
4730                                                 <Parameter Name="value" Type="System.Object"/>\r
4731                                         </Parameters>\r
4732                                         <Docs>\r
4733                                                 <summary>Implemented to support the <see cref="T:System.Collections.IList"/> interface. [Note: For more information, see <see cref="M:System.Collections.IList.Add"/>.]</summary>\r
4734                                         </Docs>\r
4735                                         <Excluded>0</Excluded>\r
4736                                 </Member>\r
4737                                 <Member MemberName="System.Collections.IList.Clear">\r
4738                                         <MemberSignature Language="ILAsm" Value=".method private final hidebysig virtual void System.Collections.IList.Clear()"/>\r
4739                                         <MemberSignature Language="C#" Value="void IList.Clear();"/>\r
4740                                         <MemberType>Method</MemberType>\r
4741                                         <ReturnValue>\r
4742                                                 <ReturnType>System.Void</ReturnType>\r
4743                                         </ReturnValue>\r
4744                                         <Parameters/>\r
4745                                         <Docs>\r
4746                                                 <summary>Implemented to support the <see cref="T:System.Collections.IList"/> interface. [Note: For more information, see <see cref="M:System.Collections.IList.Clear"/>.]</summary>\r
4747                                         </Docs>\r
4748                                         <Excluded>0</Excluded>\r
4749                                 </Member>\r
4750                                 <Member MemberName="System.Collections.IList.Contains">\r
4751                                         <MemberSignature Language="ILAsm" Value=".method private final hidebysig virtual bool System.Collections.IList.Contains(object value)"/>\r
4752                                         <MemberSignature Language="C#" Value="bool IList.Contains(object value);"/>\r
4753                                         <MemberType>Method</MemberType>\r
4754                                         <ReturnValue>\r
4755                                                 <ReturnType>System.Boolean</ReturnType>\r
4756                                         </ReturnValue>\r
4757                                         <Parameters>\r
4758                                                 <Parameter Name="value" Type="System.Object"/>\r
4759                                         </Parameters>\r
4760                                         <Docs>\r
4761                                                 <summary>Implemented to support the <see cref="T:System.Collections.IList"/> interface. [Note: For more information, see <see cref="M:System.Collections.IList.Contains"/>.]</summary>\r
4762                                         </Docs>\r
4763                                         <Excluded>0</Excluded>\r
4764                                 </Member>\r
4765                                 <Member MemberName="System.Collections.IList.IndexOf">\r
4766                                         <MemberSignature Language="ILAsm" Value=".method private final hidebysig virtual int32 System.Collections.IList.IndexOf(object value)"/>\r
4767                                         <MemberSignature Language="C#" Value="int IList.IndexOf(object value);"/>\r
4768                                         <MemberType>Method</MemberType>\r
4769                                         <ReturnValue>\r
4770                                                 <ReturnType>System.Int32</ReturnType>\r
4771                                         </ReturnValue>\r
4772                                         <Parameters>\r
4773                                                 <Parameter Name="value" Type="System.Object"/>\r
4774                                         </Parameters>\r
4775                                         <Docs>\r
4776                                                 <summary>Implemented to support the <see cref="T:System.Collections.IList"/> interface. [Note: For more information, see <see cref="M:System.Collections.IList.IndexOf"/>.]</summary>\r
4777                                         </Docs>\r
4778                                         <Excluded>0</Excluded>\r
4779                                 </Member>\r
4780                                 <Member MemberName="System.Collections.IList.Insert">\r
4781                                         <MemberSignature Language="ILAsm" Value=".method private final hidebysig virtual void System.Collections.IList.Insert(int32 index, object value)"/>\r
4782                                         <MemberSignature Language="C#" Value="void IList.Insert(int index, object value);"/>\r
4783                                         <MemberType>Method</MemberType>\r
4784                                         <ReturnValue>\r
4785                                                 <ReturnType>System.Void</ReturnType>\r
4786                                         </ReturnValue>\r
4787                                         <Parameters>\r
4788                                                 <Parameter Name="index" Type="System.Int32"/>\r
4789                                                 <Parameter Name="value" Type="System.Object"/>\r
4790                                         </Parameters>\r
4791                                         <Docs>\r
4792                                                 <summary>Implemented to support the <see cref="T:System.Collections.IList"/> interface. [Note: For more information, see <see cref="M:System.Collections.IList.Insert"/>.]</summary>\r
4793                                         </Docs>\r
4794                                         <Excluded>0</Excluded>\r
4795                                 </Member>\r
4796                                 <Member MemberName="System.Collections.IList.Item">\r
4797                                         <MemberSignature Language="ILAsm" Value=".property object IList.Item[int32 index] { public hidebysig virtual abstract specialname object get_IList.Item(int32 index) public hidebysig virtual abstract specialname void set_IList.Item(int32 index, object value) }"/>\r
4798                                         <MemberSignature Language="C#" Value="public virtual object this[int index] { get; set; }"/>\r
4799                                         <MemberType>Property</MemberType>\r
4800                                         <ReturnValue>\r
4801                                                 <ReturnType>System.Object</ReturnType>\r
4802                                         </ReturnValue>\r
4803                                         <Parameters>\r
4804                                                 <Parameter Name="index" Type="System.Int32"/>\r
4805                                         </Parameters>\r
4806                                         <Docs>\r
4807                                                 <summary>Implemented to support the <see cref="T:System.Collections.IList"/> interface. [Note: For more information, see <see cref="M:System.Collections.IList.Item"/>.]</summary>\r
4808                                         </Docs>\r
4809                                         <Excluded>0</Excluded>\r
4810                                 </Member>\r
4811                                 <Member MemberName="System.Collections.IList.Remove">\r
4812                                         <MemberSignature Language="ILAsm" Value=".method private final hidebysig virtual void System.Collections.IList.Remove(object value)"/>\r
4813                                         <MemberSignature Language="C#" Value="void IList.Remove(object value);"/>\r
4814                                         <MemberType>Method</MemberType>\r
4815                                         <ReturnValue>\r
4816                                                 <ReturnType>System.Void</ReturnType>\r
4817                                         </ReturnValue>\r
4818                                         <Parameters>\r
4819                                                 <Parameter Name="value" Type="System.Object"/>\r
4820                                         </Parameters>\r
4821                                         <Docs>\r
4822                                                 <summary>Implemented to support the <see cref="T:System.Collections.IList"/> interface. [Note: For more information, see <see cref="M:System.Collections.IList.Remove"/>.]</summary>\r
4823                                         </Docs>\r
4824                                         <Excluded>0</Excluded>\r
4825                                 </Member>\r
4826                                 <Member MemberName="System.Collections.IList.RemoveAt">\r
4827                                         <MemberSignature Language="ILAsm" Value=".method private final hidebysig virtual void System.Collections.IList.RemoveAt(int32 index)"/>\r
4828                                         <MemberSignature Language="C#" Value="void IList.RemoveAt(int index);"/>\r
4829                                         <MemberType>Method</MemberType>\r
4830                                         <ReturnValue>\r
4831                                                 <ReturnType>System.Void</ReturnType>\r
4832                                         </ReturnValue>\r
4833                                         <Parameters>\r
4834                                                 <Parameter Name="index" Type="System.Int32"/>\r
4835                                         </Parameters>\r
4836                                         <Docs>\r
4837                                                 <summary>Implemented to support the <see cref="T:System.Collections.IList"/> interface. [Note: For more information, see <see cref="M:System.Collections.IList.RemoveAt"/>.]</summary>\r
4838                                         </Docs>\r
4839                                         <Excluded>0</Excluded>\r
4840                                 </Member>\r
4841                                 <Member MemberName="TrueForAll&lt;T&gt;">\r
4842                                         <MemberSignature Language="ILAsm" Value=".method public hidebysig static bool TrueForAll&lt;T&gt;(!!0[] array, class System.Predicate`1&lt;!!0&gt; match)"/>\r
4843                                         <MemberSignature Language="C#" Value="public static bool TrueForAll&lt;T&gt;(T[] array, Predicate&lt;T&gt; match)"/>\r
4844                                         <MemberType>Method</MemberType>\r
4845                                         <ReturnValue>\r
4846                                                 <ReturnType>System.Boolean</ReturnType>\r
4847                                         </ReturnValue>\r
4848                                         <Parameters>\r
4849                                                 <Parameter Name="array" Type="T[]"/>\r
4850                                                 <Parameter Name="match" Type="System.Predicate&lt;T&gt;"/>\r
4851                                         </Parameters>\r
4852                                         <Docs>\r
4853                                                 <summary>\r
4854                                                         <para>Determines whether every element in the array matches the predicate.</para>\r
4855                                                 </summary>\r
4856                                                 <param name="array">The array to check against the conditions.</param>\r
4857                                                 <param name="match">\r
4858                                                         <para>The predicate against which the elements are checked..</para>\r
4859                                                 </param>\r
4860                                                 <returns>\r
4861                                                         <para>\r
4862                                                                 <see langword="true"/>, if every element in <paramref name="array"/> matches the specified predicate; otherwise, <see langword="false"/>.</para>\r
4863                                                 </returns>\r
4864                                                 <exception cref="T:System.ArgumentNullException">\r
4865                                                         <paramref name="array"/>  or <paramref name="match"/> is <see langword="null"/>.</exception>\r
4866                                                 <remarks>\r
4867                                                         <para>The predicate returns <see langword="true"/> if the object passed to it matches the delegate.  The elements of <paramref name="array"/> are individually passed to the predicate, and processing is stopped when the delegate returns <see langword="false"/> for any element.</para>\r
4868                                                 </remarks>\r
4869                                         </Docs>\r
4870                                         <Excluded>0</Excluded>\r
4871                                 </Member>\r
4872                         </Members>\r
4873                         <TypeExcluded>0</TypeExcluded>\r
4874                 </Type>\r
4875         </Types>\r
4876 </Libraries>\r