﻿<?xml version="1.0" encoding="utf-8"?><Type Name="Collection&lt;T&gt;" FullName="System.Collections.ObjectModel.Collection&lt;T&gt;"><TypeSignature Language="C#" Value="public class Collection&lt;T&gt; : System.Collections.Generic.ICollection&lt;T&gt;, System.Collections.Generic.IEnumerable&lt;T&gt;, System.Collections.Generic.IList&lt;T&gt;, System.Collections.Generic.IReadOnlyCollection&lt;T&gt;, System.Collections.Generic.IReadOnlyList&lt;T&gt;, System.Collections.IList" /><TypeSignature Language="ILAsm" Value=".class public auto ansi serializable beforefieldinit Collection`1&lt;T&gt; extends System.Object implements class System.Collections.Generic.ICollection`1&lt;!T&gt;, class System.Collections.Generic.IEnumerable`1&lt;!T&gt;, class System.Collections.Generic.IList`1&lt;!T&gt;, class System.Collections.Generic.IReadOnlyCollection`1&lt;!T&gt;, class System.Collections.Generic.IReadOnlyList`1&lt;!T&gt;, class System.Collections.ICollection, class System.Collections.IEnumerable, class System.Collections.IList" /><AssemblyInfo><AssemblyName>mscorlib</AssemblyName><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><TypeParameters><TypeParameter Name="T" /></TypeParameters><Base><BaseTypeName>System.Object</BaseTypeName></Base><Interfaces><Interface><InterfaceName>System.Collections.Generic.ICollection&lt;T&gt;</InterfaceName></Interface><Interface><InterfaceName>System.Collections.Generic.IEnumerable&lt;T&gt;</InterfaceName></Interface><Interface><InterfaceName>System.Collections.Generic.IList&lt;T&gt;</InterfaceName></Interface><Interface><InterfaceName>System.Collections.Generic.IReadOnlyCollection&lt;T&gt;</InterfaceName></Interface><Interface><InterfaceName>System.Collections.Generic.IReadOnlyList&lt;T&gt;</InterfaceName></Interface><Interface><InterfaceName>System.Collections.IList</InterfaceName></Interface></Interfaces><Attributes><Attribute><AttributeName>System.Diagnostics.DebuggerDisplay("Count={Count}")</AttributeName></Attribute><Attribute><AttributeName>System.Diagnostics.DebuggerTypeProxy(typeof(System.Collections.Generic.CollectionDebuggerView`1))</AttributeName></Attribute><Attribute><AttributeName>System.Runtime.InteropServices.ComVisible(false)</AttributeName></Attribute></Attributes><Docs><typeparam name="T">To be added.</typeparam><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The <see cref="T:System.Collections.ObjectModel.Collection`1" /> class can be used immediately by creating an instance of one of its constructed types; all you have to do is specify the type of object to be contained in the collection. In addition, you can derive your own collection type from any constructed type, or derive a generic collection type from the <see cref="T:System.Collections.ObjectModel.Collection`1" /> class itself.</para><para>The <see cref="T:System.Collections.ObjectModel.Collection`1" /> class provides protected methods that can be used to customize its behavior when adding and removing items, clearing the collection, or setting the value of an existing item.</para><para>Most <see cref="T:System.Collections.ObjectModel.Collection`1" /> objects can be modified. However, a <see cref="T:System.Collections.ObjectModel.Collection`1" /> object that is initialized with a read-only <see cref="T:System.Collections.Generic.IList`1" /> object cannot be modified. See <see cref="T:System.Collections.ObjectModel.ReadOnlyCollection`1" /> for a read-only version of this class.</para><para>Elements in this collection can be accessed using an integer index.  Indexes in this collection are zero-based.</para><para><see cref="T:System.Collections.ObjectModel.Collection`1" /> accepts null as a valid value for reference types and allows duplicate elements.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Provides the base class for a generic collection.</para></summary></Docs><Members><Member MemberName=".ctor"><MemberSignature Language="C#" Value="public Collection ();" /><MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" /><MemberType>Constructor</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Parameters /><Docs><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>This constructor is an O(1) operation.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Initializes a new instance of the <see cref="T:System.Collections.ObjectModel.Collection`1" /> class that is empty.</para></summary></Docs></Member><Member MemberName=".ctor"><MemberSignature Language="C#" Value="public Collection (System.Collections.Generic.IList&lt;T&gt; list);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(class System.Collections.Generic.IList`1&lt;!T&gt; list) cil managed" /><MemberType>Constructor</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><Parameters><Parameter Name="list" Type="System.Collections.Generic.IList&lt;T&gt;" /></Parameters><Docs><param name="list">To be added.</param><summary>To be added.</summary><remarks>To be added.</remarks><since version=".NET 2.0" /></Docs></Member><Member MemberName="Add"><MemberSignature Language="C#" Value="public void Add (T item);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Add(!T item) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="item" Type="T" /></Parameters><Docs><param name="item">To be added.</param><summary>To be added.</summary><remarks>To be added.</remarks><since version=".NET 2.0" /></Docs></Member><Member MemberName="Clear"><MemberSignature Language="C#" Value="public void Clear ();" /><MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Clear() cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters /><Docs><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para><see cref="P:System.Collections.ObjectModel.Collection`1.Count" /> is set to zero, and references to other objects from elements of the collection are also released.</para><para>This method is an O(<paramref name="n" />) operation, where <paramref name="n" /> is <see cref="P:System.Collections.ObjectModel.Collection`1.Count" />.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Removes all elements from the <see cref="T:System.Collections.ObjectModel.Collection`1" />.</para></summary></Docs></Member><Member MemberName="ClearItems"><MemberSignature Language="C#" Value="protected virtual void ClearItems ();" /><MemberSignature Language="ILAsm" Value=".method familyhidebysig newslot virtual instance void ClearItems() cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters /><Docs><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para><see cref="P:System.Collections.ObjectModel.Collection`1.Count" /> is set to zero, and references to other objects from elements of the collection are also released.</para><para>This method is an O(<paramref name="n" />) operation, where <paramref name="n" /> is <see cref="P:System.Collections.ObjectModel.Collection`1.Count" />.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Removes all elements from the <see cref="T:System.Collections.ObjectModel.Collection`1" />.</para></summary></Docs></Member><Member MemberName="Contains"><MemberSignature Language="C#" Value="public bool Contains (T item);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance bool Contains(!T item) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue><Parameters><Parameter Name="item" Type="T" /></Parameters><Docs><param name="item">To be added.</param><summary>To be added.</summary><returns>To be added.</returns><remarks>To be added.</remarks><since version=".NET 2.0" /></Docs></Member><Member MemberName="CopyTo"><MemberSignature Language="C#" Value="public void CopyTo (T[] array, int index);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void CopyTo(!T[] array, int32 index) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="array" Type="T[]" /><Parameter Name="index" Type="System.Int32" /></Parameters><Docs><param name="array">To be added.</param><param name="index">To be added.</param><summary>To be added.</summary><remarks>To be added.</remarks><since version=".NET 2.0" /></Docs></Member><Member MemberName="Count"><MemberSignature Language="C#" Value="public int Count { get; }" /><MemberSignature Language="ILAsm" Value=".property instance int32 Count" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Int32</ReturnType></ReturnValue><Docs><value>To be added.</value><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>Retrieving the value of this property is an O(1) operation.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets the number of elements actually contained in the <see cref="T:System.Collections.ObjectModel.Collection`1" />.</para></summary></Docs></Member><Member MemberName="GetEnumerator"><MemberSignature Language="C#" Value="public System.Collections.Generic.IEnumerator&lt;T&gt; GetEnumerator ();" /><MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class System.Collections.Generic.IEnumerator`1&lt;!T&gt; GetEnumerator() cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Collections.Generic.IEnumerator&lt;T&gt;</ReturnType></ReturnValue><Parameters /><Docs><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The foreach statement of the C# language (for each in C++, For Each in Visual Basic) hides the complexity of the enumerators.  Therefore, using foreach is recommended, instead of directly manipulating the enumerator.</para><para>Enumerators can be used to read the data in the collection, but they cannot be used to modify the underlying collection.</para><para>Initially, the enumerator is positioned before the first element in the collection. At this position, <see cref="P:System.Collections.Generic.IEnumerator`1.Current" /> is undefined. Therefore, you must call <see cref="M:System.Collections.IEnumerator.MoveNext" /> to advance the enumerator to the first element of the collection before reading the value of <see cref="P:System.Collections.Generic.IEnumerator`1.Current" />.</para><para><see cref="P:System.Collections.Generic.IEnumerator`1.Current" /> returns the same object until <see cref="M:System.Collections.IEnumerator.MoveNext" /> is called. <see cref="M:System.Collections.IEnumerator.MoveNext" /> sets <see cref="P:System.Collections.Generic.IEnumerator`1.Current" /> to the next element.</para><para>If <see cref="M:System.Collections.IEnumerator.MoveNext" /> passes the end of the collection, the enumerator is positioned after the last element in the collection and <see cref="M:System.Collections.IEnumerator.MoveNext" /> returns false. When the enumerator is at this position, subsequent calls to <see cref="M:System.Collections.IEnumerator.MoveNext" /> also return false. If the last call to <see cref="M:System.Collections.IEnumerator.MoveNext" /> returned false, <see cref="P:System.Collections.Generic.IEnumerator`1.Current" /> is undefined. You cannot set <see cref="P:System.Collections.Generic.IEnumerator`1.Current" /> to the first element of the collection again; you must create a new enumerator instance instead.</para><para>An enumerator remains valid as long as the collection remains unchanged. If changes are made to the collection, such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated and its behavior is undefined.</para><para>The enumerator does not have exclusive access to the collection; therefore, enumerating through a collection is intrinsically not a thread-safe procedure. To guarantee thread safety during enumeration, you can lock the collection during the entire enumeration.  To allow the collection to be accessed by multiple threads for reading and writing, you must implement your own synchronization.</para><para>Default implementations of collections in <see cref="N:System.Collections.Generic" /> are not synchronized.</para><para>This method is an O(1) operation.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Returns an enumerator that iterates through the <see cref="T:System.Collections.ObjectModel.Collection`1" />.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>An <see cref="T:System.Collections.Generic.IEnumerator`1" /> for the <see cref="T:System.Collections.ObjectModel.Collection`1" />.</para></returns></Docs></Member><Member MemberName="IndexOf"><MemberSignature Language="C#" Value="public int IndexOf (T item);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance int32 IndexOf(!T item) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Int32</ReturnType></ReturnValue><Parameters><Parameter Name="item" Type="T" /></Parameters><Docs><param name="item">To be added.</param><summary>To be added.</summary><returns>To be added.</returns><remarks>To be added.</remarks><since version=".NET 2.0" /></Docs></Member><Member MemberName="Insert"><MemberSignature Language="C#" Value="public void Insert (int index, T item);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Insert(int32 index, !T item) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="index" Type="System.Int32" /><Parameter Name="item" Type="T" /></Parameters><Docs><param name="index">To be added.</param><param name="item">To be added.</param><summary>To be added.</summary><remarks>To be added.</remarks><since version=".NET 2.0" /></Docs></Member><Member MemberName="InsertItem"><MemberSignature Language="C#" Value="protected virtual void InsertItem (int index, T item);" /><MemberSignature Language="ILAsm" Value=".method familyhidebysig newslot virtual instance void InsertItem(int32 index, !T item) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="index" Type="System.Int32" /><Parameter Name="item" Type="T" /></Parameters><Docs><param name="index">To be added.</param><param name="item">To be added.</param><summary>To be added.</summary><remarks>To be added.</remarks><since version=".NET 2.0" /></Docs></Member><Member MemberName="Item"><MemberSignature Language="C#" Value="public T this[int index] { get; set; }" /><MemberSignature Language="ILAsm" Value=".property instance !T Item(int32)" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>T</ReturnType></ReturnValue><Parameters><Parameter Name="index" Type="System.Int32" /></Parameters><Docs><param name="index">To be added.</param><summary>To be added.</summary><value>To be added.</value><remarks>To be added.</remarks><since version=".NET 2.0" /></Docs></Member><Member MemberName="Items"><MemberSignature Language="C#" Value="protected System.Collections.Generic.IList&lt;T&gt; Items { get; }" /><MemberSignature Language="ILAsm" Value=".property instance class System.Collections.Generic.IList`1&lt;!T&gt; Items" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Collections.Generic.IList&lt;T&gt;</ReturnType></ReturnValue><Docs><value>To be added.</value><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The wrapper provides the functionality of the <see cref="T:System.Collections.Generic.IList`1" /> class and exposes all the elements of the <see cref="T:System.Collections.ObjectModel.Collection`1" />.</para><para>Retrieving the value of this property is an O(1) operation.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets a <see cref="T:System.Collections.Generic.IList`1" /> wrapper around the <see cref="T:System.Collections.ObjectModel.Collection`1" />.</para></summary></Docs></Member><Member MemberName="Remove"><MemberSignature Language="C#" Value="public bool Remove (T item);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance bool Remove(!T item) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue><Parameters><Parameter Name="item" Type="T" /></Parameters><Docs><param name="item">To be added.</param><summary>To be added.</summary><returns>To be added.</returns><remarks>To be added.</remarks><since version=".NET 2.0" /></Docs></Member><Member MemberName="RemoveAt"><MemberSignature Language="C#" Value="public void RemoveAt (int index);" /><MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void RemoveAt(int32 index) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="index" Type="System.Int32" /></Parameters><Docs><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>This method is an O(<paramref name="n" />) operation, where <paramref name="n" /> is <see cref="P:System.Collections.ObjectModel.Collection`1.Count" />.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Removes the element at the specified index of the <see cref="T:System.Collections.ObjectModel.Collection`1" />.</para></summary><param name="index"><attribution license="cc4" from="Microsoft" modified="false" />The zero-based index of the element to remove.</param></Docs></Member><Member MemberName="RemoveItem"><MemberSignature Language="C#" Value="protected virtual void RemoveItem (int index);" /><MemberSignature Language="ILAsm" Value=".method familyhidebysig newslot virtual instance void RemoveItem(int32 index) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="index" Type="System.Int32" /></Parameters><Docs><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>This method is an O(<paramref name="n" />) operation, where <paramref name="n" /> is <see cref="P:System.Collections.ObjectModel.Collection`1.Count" />.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Removes the element at the specified index of the <see cref="T:System.Collections.ObjectModel.Collection`1" />.</para></summary><param name="index"><attribution license="cc4" from="Microsoft" modified="false" />The zero-based index of the element to remove.</param></Docs></Member><Member MemberName="SetItem"><MemberSignature Language="C#" Value="protected virtual void SetItem (int index, T item);" /><MemberSignature Language="ILAsm" Value=".method familyhidebysig newslot virtual instance void SetItem(int32 index, !T item) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="index" Type="System.Int32" /><Parameter Name="item" Type="T" /></Parameters><Docs><param name="index">To be added.</param><param name="item">To be added.</param><summary>To be added.</summary><remarks>To be added.</remarks><since version=".NET 2.0" /></Docs></Member><Member MemberName="System.Collections.Generic.ICollection&lt;T&gt;.IsReadOnly"><MemberSignature Language="C#" Value="bool System.Collections.Generic.ICollection&lt;T&gt;.IsReadOnly { get; }" /><MemberSignature Language="ILAsm" Value=".property instance bool System.Collections.Generic.ICollection&lt;T&gt;.IsReadOnly" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue><Docs><summary>To be added.</summary><value>To be added.</value><remarks>To be added.</remarks><since version=".NET 2.0" /></Docs></Member><Member MemberName="System.Collections.ICollection.CopyTo"><MemberSignature Language="C#" Value="void ICollection.CopyTo (Array array, int index);" /><MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance void System.Collections.ICollection.CopyTo(class System.Array array, int32 index) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="array" Type="System.Array" /><Parameter Name="index" Type="System.Int32" /></Parameters><Docs><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><block subset="none" type="note"><para>If the type of the source <see cref="T:System.Collections.ICollection" /> cannot be cast automatically to the type of the destination <paramref name="array" />, the non-generic implementations of <see cref="M:System.Collections.ICollection.CopyTo(System.Array,System.Int32)" /> throw <see cref="T:System.InvalidCastException" />, whereas the generic implementations throw <see cref="T:System.ArgumentException" />.</para></block><para>This method is an O(<paramref name="n" />) operation, where <paramref name="n" /> is <see cref="P:System.Collections.ObjectModel.Collection`1.Count" />.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Copies the elements of the <see cref="T:System.Collections.ICollection" /> to an <see cref="T:System.Array" />, starting at a particular <see cref="T:System.Array" /> index.</para></summary><param name="array"><attribution license="cc4" from="Microsoft" modified="false" />The one-dimensional <see cref="T:System.Array" /> that is the destination of the elements copied from <see cref="T:System.Collections.ICollection" />. The <see cref="T:System.Array" /> must have zero-based indexing.</param><param name="index"><attribution license="cc4" from="Microsoft" modified="false" />The zero-based index in <paramref name="array" /> at which copying begins.</param></Docs></Member><Member MemberName="System.Collections.ICollection.IsSynchronized"><MemberSignature Language="C#" Value="bool System.Collections.ICollection.IsSynchronized { get; }" /><MemberSignature Language="ILAsm" Value=".property instance bool System.Collections.ICollection.IsSynchronized" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue><Docs><value>To be added.</value><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>Default implementations of collections in <see cref="N:System.Collections.Generic" /> are not synchronized.</para><para>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><para><see cref="P:System.Collections.ICollection.SyncRoot" /> returns an object that can be used to synchronize access to the <see cref="T:System.Collections.ICollection" />. Synchronization is effective only if all threads lock this object before accessing the collection.</para><para>Retrieving the value of this property is an O(1) operation.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets a value indicating whether access to the <see cref="T:System.Collections.ICollection" /> is synchronized (thread safe).</para></summary></Docs></Member><Member MemberName="System.Collections.ICollection.SyncRoot"><MemberSignature Language="C#" Value="object System.Collections.ICollection.SyncRoot { get; }" /><MemberSignature Language="ILAsm" Value=".property instance object System.Collections.ICollection.SyncRoot" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Object</ReturnType></ReturnValue><Docs><value>To be added.</value><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>Default implementations of collections in <see cref="N:System.Collections.Generic" /> are not synchronized.</para><para>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><para><see cref="P:System.Collections.ICollection.SyncRoot" /> returns an object that can be used to synchronize access to the <see cref="T:System.Collections.ICollection" />. Synchronization is effective only if all threads lock this object before accessing the collection. The following code shows the use of the <see cref="P:System.Collections.ICollection.SyncRoot" /> property for C#, C++, and Visual Basic. </para><code>ICollection ic = ...;
lock (ic.SyncRoot) {
   // Access the collection.
}</code><code>Dim ic As ICollection = ...
SyncLock ic.SyncRoot
   ' Access the collection.
End SyncLock</code><code>ICollection^ ic = ...;
try {
   Monitor::Enter(ic-&gt;SyncRoot);
   // Access the collection.
}
finally {
   Monitor::Exit(ic-&gt;SyncRoot);
}</code><para>Retrieving the value of this property is an O(1) operation.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets an object that can be used to synchronize access to the <see cref="T:System.Collections.ICollection" />.</para></summary></Docs></Member><Member MemberName="System.Collections.IEnumerable.GetEnumerator"><MemberSignature Language="C#" Value="System.Collections.IEnumerator IEnumerable.GetEnumerator ();" /><MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance class System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Collections.IEnumerator</ReturnType></ReturnValue><Parameters /><Docs><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>The foreach statement of the C# language (for each in C++, For Each in Visual Basic) hides the complexity of the enumerators.  Therefore, using foreach is recommended, instead of directly manipulating the enumerator.</para><para>Enumerators can be used to read the data in the collection, but they cannot be used to modify the underlying collection.</para><para>Initially, the enumerator is positioned before the first element in the collection. <see cref="M:System.Collections.IEnumerator.Reset" /> also brings the enumerator back to this position.  At this position, <see cref="P:System.Collections.IEnumerator.Current" /> is undefined. Therefore, you must call <see cref="M:System.Collections.IEnumerator.MoveNext" /> to advance the enumerator to the first element of the collection before reading the value of <see cref="P:System.Collections.IEnumerator.Current" />.</para><para><see cref="P:System.Collections.IEnumerator.Current" /> returns the same object until either <see cref="M:System.Collections.IEnumerator.MoveNext" /> or <see cref="M:System.Collections.IEnumerator.Reset" /> is called. <see cref="M:System.Collections.IEnumerator.MoveNext" /> sets <see cref="P:System.Collections.IEnumerator.Current" /> to the next element.</para><para>If <see cref="M:System.Collections.IEnumerator.MoveNext" /> passes the end of the collection, the enumerator is positioned after the last element in the collection and <see cref="M:System.Collections.IEnumerator.MoveNext" /> returns false. When the enumerator is at this position, subsequent calls to <see cref="M:System.Collections.IEnumerator.MoveNext" /> also return false. If the last call to <see cref="M:System.Collections.IEnumerator.MoveNext" /> returned false, <see cref="P:System.Collections.IEnumerator.Current" /> is undefined. To set <see cref="P:System.Collections.IEnumerator.Current" /> to the first element of the collection again, you can call <see cref="M:System.Collections.IEnumerator.Reset" /> followed by <see cref="M:System.Collections.IEnumerator.MoveNext" />.</para><para>An enumerator remains valid as long as the collection remains unchanged. If changes are made to the collection, such as adding, modifying, or deleting elements, the enumerator is irrecoverably invalidated and its behavior is undefined.</para><para>The enumerator does not have exclusive access to the collection; therefore, enumerating through a collection is intrinsically not a thread-safe procedure.  To guarantee thread safety during enumeration, you can lock the collection during the entire enumeration.  To allow the collection to be accessed by multiple threads for reading and writing, you must implement your own synchronization.</para><para>Default implementations of collections in <see cref="N:System.Collections.Generic" /> are not synchronized.</para><para>This method is an O(1) operation.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Returns an enumerator that iterates through a collection.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>An <see cref="T:System.Collections.IEnumerator" /> that can be used to iterate through the collection.</para></returns></Docs></Member><Member MemberName="System.Collections.IList.Add"><MemberSignature Language="C#" Value="int IList.Add (object value);" /><MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance int32 System.Collections.IList.Add(object value) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Int32</ReturnType></ReturnValue><Parameters><Parameter Name="value" Type="System.Object" /></Parameters><Docs><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>This method is an O(1) operation.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Adds an item to the <see cref="T:System.Collections.IList" />.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>The position into which the new element was inserted.</para></returns><param name="value"><attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Object" /> to add to the <see cref="T:System.Collections.IList" />.</param></Docs></Member><Member MemberName="System.Collections.IList.Contains"><MemberSignature Language="C#" Value="bool IList.Contains (object value);" /><MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance bool System.Collections.IList.Contains(object value) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue><Parameters><Parameter Name="value" Type="System.Object" /></Parameters><Docs><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>This method determines equality by first determining whether <paramref name="value" /> is of type <paramref name="T" /> (or null) and then calling <see cref="M:System.Collections.ObjectModel.Collection`1.Contains(`0)" />.</para><para>This method is an O(<paramref name="n" />) operation, where <paramref name="n" /> is <see cref="P:System.Collections.ObjectModel.Collection`1.Count" />.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Determines whether the <see cref="T:System.Collections.IList" /> contains a specific value.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>true if the <see cref="T:System.Object" /> is found in the <see cref="T:System.Collections.IList" />; otherwise, false.</para></returns><param name="value"><attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Object" /> to locate in the <see cref="T:System.Collections.IList" />.</param></Docs></Member><Member MemberName="System.Collections.IList.IndexOf"><MemberSignature Language="C#" Value="int IList.IndexOf (object value);" /><MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance int32 System.Collections.IList.IndexOf(object value) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Int32</ReturnType></ReturnValue><Parameters><Parameter Name="value" Type="System.Object" /></Parameters><Docs><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>This method determines equality using the default comparer <see cref="P:System.Collections.Generic.Comparer`1.Default" />.  <see cref="P:System.Collections.Generic.Comparer`1.Default" /> checks whether type <paramref name="T" /> implements <see cref="T:System.IComparable`1" /> and uses that implementation, if available.  If not, <see cref="P:System.Collections.Generic.Comparer`1.Default" /> checks whether type <paramref name="T" /> implements <see cref="T:System.IComparable" />.  If type <paramref name="T" /> does not implement either interface, this method uses <see cref="Overload:System.Object.Equals" />.</para><para>This method is an O(<paramref name="n" />) operation, where <paramref name="n" /> is <see cref="P:System.Collections.ObjectModel.Collection`1.Count" />.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Determines the index of a specific item in the <see cref="T:System.Collections.IList" />.</para></summary><returns><attribution license="cc4" from="Microsoft" modified="false" /><para>The index of <paramref name="value" /> if found in the list; otherwise, -1.</para></returns><param name="value"><attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Object" /> to locate in the <see cref="T:System.Collections.IList" />.</param></Docs></Member><Member MemberName="System.Collections.IList.Insert"><MemberSignature Language="C#" Value="void IList.Insert (int index, object value);" /><MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance void System.Collections.IList.Insert(int32 index, object value) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="index" Type="System.Int32" /><Parameter Name="value" Type="System.Object" /></Parameters><Docs><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>If <paramref name="index" /> equals the number of items in the <see cref="T:System.Collections.IList" />, then <paramref name="value" /> is appended to the end.</para><para>This method is an O(<paramref name="n" />) operation, where <paramref name="n" /> is <see cref="P:System.Collections.ObjectModel.Collection`1.Count" />.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Inserts an item into the <see cref="T:System.Collections.IList" /> at the specified index.</para></summary><param name="index"><attribution license="cc4" from="Microsoft" modified="false" />The zero-based index at which <paramref name="value" /> should be inserted.</param><param name="value"><attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Object" /> to insert into the <see cref="T:System.Collections.IList" />.</param></Docs></Member><Member MemberName="System.Collections.IList.IsFixedSize"><MemberSignature Language="C#" Value="bool System.Collections.IList.IsFixedSize { get; }" /><MemberSignature Language="ILAsm" Value=".property instance bool System.Collections.IList.IsFixedSize" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue><Docs><value>To be added.</value><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>A collection with a fixed size does not allow the addition or removal of elements after the collection is created, but it allows the modification of existing elements.</para><para>A collection with a fixed size is simply a collection with a wrapper that prevents adding and removing elements; therefore, if changes are made to the underlying collection, including the addition or removal of elements, the fixed-size collection reflects those changes.</para><para>Retrieving the value of this property is an O(1) operation.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets a value indicating whether the <see cref="T:System.Collections.IList" /> has a fixed size.</para></summary></Docs></Member><Member MemberName="System.Collections.IList.IsReadOnly"><MemberSignature Language="C#" Value="bool System.Collections.IList.IsReadOnly { get; }" /><MemberSignature Language="ILAsm" Value=".property instance bool System.Collections.IList.IsReadOnly" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Boolean</ReturnType></ReturnValue><Docs><value>To be added.</value><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>A collection that is read-only does not allow the addition, removal, or modification of elements after the collection is created.</para><para>A collection that is read-only is simply a collection with a wrapper that prevents modifying the collection; therefore, if changes are made to the underlying collection, the read-only collection reflects those changes.</para><para>Retrieving the value of this property is an O(1) operation.</para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Gets a value indicating whether the <see cref="T:System.Collections.IList" /> is read-only.</para></summary></Docs></Member><Member MemberName="System.Collections.IList.Item"><MemberSignature Language="C#" Value="object System.Collections.IList.Item[int index] { get; set; }" /><MemberSignature Language="ILAsm" Value=".property instance object System.Collections.IList.Item(int32)" /><MemberType>Property</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Object</ReturnType></ReturnValue><Parameters><Parameter Name="index" Type="System.Int32" /></Parameters><Docs><param name="index">To be added.</param><summary>To be added.</summary><value>To be added.</value><remarks>To be added.</remarks><since version=".NET 2.0" /></Docs></Member><Member MemberName="System.Collections.IList.Remove"><MemberSignature Language="C#" Value="void IList.Remove (object value);" /><MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance void System.Collections.IList.Remove(object value) cil managed" /><MemberType>Method</MemberType><AssemblyInfo><AssemblyVersion>2.0.0.0</AssemblyVersion><AssemblyVersion>4.0.0.0</AssemblyVersion></AssemblyInfo><ReturnValue><ReturnType>System.Void</ReturnType></ReturnValue><Parameters><Parameter Name="value" Type="System.Object" /></Parameters><Docs><since version=".NET 2.0" /><remarks><attribution license="cc4" from="Microsoft" modified="false" /><para>This method determines equality using the default comparer <see cref="P:System.Collections.Generic.Comparer`1.Default" />.  <see cref="P:System.Collections.Generic.Comparer`1.Default" /> checks whether type <paramref name="T" /> implements <see cref="T:System.IComparable`1" /> and uses that implementation, if available.  If not, <see cref="P:System.Collections.Generic.Comparer`1.Default" /> checks whether type <paramref name="T" /> implements <see cref="T:System.IComparable" />.  If type <paramref name="T" /> does not implement either interface, this method uses <see cref="Overload:System.Object.Equals" />.</para><para>This method is an O(<paramref name="n" />) operation, where <paramref name="n" /> is <see cref="P:System.Collections.ObjectModel.Collection`1.Count" />. </para></remarks><summary><attribution license="cc4" from="Microsoft" modified="false" /><para>Removes the first occurrence of a specific object from the <see cref="T:System.Collections.IList" />.</para></summary><param name="value"><attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Object" /> to remove from the <see cref="T:System.Collections.IList" />.</param></Docs></Member></Members></Type>