CollectionBase Clase
Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

CollectionBase (Clase)

 

Proporciona la clase base abstract para una colección fuertemente tipada.

Espacio de nombres:   System.Collections
Ensamblado:  mscorlib (en mscorlib.dll)

System.Object
  System.Collections.CollectionBase
    System.CodeDom.CodeAttributeArgumentCollection
    System.CodeDom.CodeAttributeDeclarationCollection
    System.CodeDom.CodeCatchClauseCollection
    System.CodeDom.CodeCommentStatementCollection
    System.CodeDom.CodeDirectiveCollection
    System.CodeDom.CodeExpressionCollection
    System.CodeDom.CodeNamespaceCollection
    System.CodeDom.CodeParameterDeclarationExpressionCollection
    System.CodeDom.CodeStatementCollection
    System.CodeDom.CodeTypeDeclarationCollection
    System.CodeDom.CodeTypeMemberCollection
    System.CodeDom.CodeTypeParameterCollection
    System.CodeDom.CodeTypeReferenceCollection
    System.CodeDom.Compiler.CompilerErrorCollection
    System.ComponentModel.Design.Data.DataSourceDescriptorCollection
    System.ComponentModel.Design.Data.DataSourceGroupCollection
    System.ComponentModel.Design.DesignerActionItemCollection
    System.ComponentModel.Design.DesignerActionListCollection
    System.ComponentModel.Design.DesignerVerbCollection
    System.Configuration.Install.InstallerCollection
    System.Data.SqlClient.SqlBulkCopyColumnMappingCollection
    System.Diagnostics.CounterCreationDataCollection
    System.Diagnostics.EventLogPermissionEntryCollection
    System.Diagnostics.PerformanceCounterPermissionEntryCollection
    System.DirectoryServices.ActiveDirectory.ActiveDirectorySchemaClassCollection
    System.DirectoryServices.ActiveDirectory.ActiveDirectorySchemaPropertyCollection
    System.DirectoryServices.ActiveDirectory.ActiveDirectorySiteCollection
    System.DirectoryServices.ActiveDirectory.ActiveDirectorySiteLinkCollection
    System.DirectoryServices.ActiveDirectory.ActiveDirectorySubnetCollection
    System.DirectoryServices.ActiveDirectory.DirectoryServerCollection
    System.DirectoryServices.DirectoryServicesPermissionEntryCollection
    System.DirectoryServices.PropertyValueCollection
    System.DirectoryServices.Protocols.DirectoryAttribute
    System.DirectoryServices.Protocols.DirectoryAttributeCollection
    System.DirectoryServices.Protocols.DirectoryAttributeModificationCollection
    System.DirectoryServices.Protocols.DirectoryControlCollection
    System.Messaging.AccessControlList
    System.Messaging.MessageQueuePermissionEntryCollection
    System.Security.Cryptography.X509Certificates.X509CertificateCollection
    System.ServiceProcess.ServiceControllerPermissionEntryCollection
    System.Web.ParserErrorCollection
    System.Web.Services.Description.BasicProfileViolationCollection
    System.Web.Services.Description.MimePartCollection
    System.Web.Services.Description.MimeTextMatchCollection
    System.Web.Services.Description.ServiceDescriptionBaseCollection
    System.Web.Services.Description.WebReferenceCollection
    System.Web.Services.Discovery.DiscoveryClientResultCollection
    System.Web.Services.Discovery.DiscoveryReferenceCollection
    System.Web.Services.Protocols.SoapHeaderCollection
    System.Web.UI.WebControls.EmbeddedMailObjectsCollection
    System.Web.UI.WebControls.RoleGroupCollection
    System.Web.UI.WebControls.WebParts.ProxyWebPartConnectionCollection
    System.Web.UI.WebControls.WebParts.WebPartConnectionCollection
    System.Web.UI.WebControls.WebParts.WebPartDisplayModeCollection
    System.Web.UI.WebControls.WebParts.WebPartTransformerCollection
    System.Windows.Documents.LinkTargetCollection
    System.Windows.Forms.Design.Behavior.BehaviorServiceAdornerCollection
    System.Windows.Forms.Design.Behavior.GlyphCollection
    System.Xml.Schema.XmlSchemaObjectCollection
    System.Xml.Serialization.Advanced.SchemaImporterExtensionCollection
    System.Xml.Serialization.XmlAnyElementAttributes
    System.Xml.Serialization.XmlArrayItemAttributes
    System.Xml.Serialization.XmlElementAttributes
    System.Xml.Serialization.XmlSchemas

<SerializableAttribute>
<ComVisibleAttribute(True)>
Public MustInherit Class CollectionBase
	Implements IList, ICollection, IEnumerable

NombreDescripción
System_CAPS_protmethodCollectionBase()

Inicializa una nueva instancia de la CollectionBase clase con la capacidad inicial predeterminada.

System_CAPS_protmethodCollectionBase(Int32)

Inicializa una nueva instancia de la CollectionBase clase con la capacidad especificada.

NombreDescripción
System_CAPS_pubpropertyCapacity

Obtiene o establece el número de elementos que puede contener CollectionBase.

System_CAPS_pubpropertyCount

Obtiene el número de elementos incluidos en la instancia de CollectionBase. Esta propiedad no se puede invalidar.

System_CAPS_protpropertyInnerList

Obtiene un ArrayList que contiene la lista de elementos de la CollectionBase instancia.

System_CAPS_protpropertyList

Obtiene un IList que contiene la lista de elementos de la CollectionBase instancia.

NombreDescripción
System_CAPS_pubmethodClear()

Quita todos los objetos de la CollectionBase instancia. Este método no se puede invalidar.

System_CAPS_pubmethodEquals(Object)

Determina si el objeto especificado es igual al objeto actual.(Heredado de Object.)

System_CAPS_protmethodFinalize()

Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por el recolector de basura. (Heredado de Object.)

System_CAPS_pubmethodGetEnumerator()

Devuelve un enumerador que recorre en iteración el CollectionBase instancia.

System_CAPS_pubmethodGetHashCode()

Sirve como la función hash predeterminada.(Heredado de Object.)

System_CAPS_pubmethodGetType()

Obtiene el Type de la instancia actual.(Heredado de Object.)

System_CAPS_protmethodMemberwiseClone()

Crea una copia superficial del Object actual.(Heredado de Object.)

System_CAPS_protmethodOnClear()

Realiza procesos personalizados adicionales al borrar el contenido de la CollectionBase instancia.

System_CAPS_protmethodOnClearComplete()

Realiza procesos personalizados adicionales después de borrar el contenido de la instancia de CollectionBase.

System_CAPS_protmethodOnInsert(Int32, Object)

Realiza procesos personalizados adicionales antes de insertar un nuevo elemento en la instancia de CollectionBase.

System_CAPS_protmethodOnInsertComplete(Int32, Object)

Realiza procesos personalizados adicionales después de insertar un nuevo elemento en la instancia de CollectionBase.

System_CAPS_protmethodOnRemove(Int32, Object)

Realiza procesos personalizados adicionales al quitar un elemento de la CollectionBase instancia.

System_CAPS_protmethodOnRemoveComplete(Int32, Object)

Realiza procesos personalizados adicionales después de quitar un elemento de la instancia de CollectionBase.

System_CAPS_protmethodOnSet(Int32, Object, Object)

Realiza procesos personalizados adicionales antes de establecer un valor en la instancia de CollectionBase.

System_CAPS_protmethodOnSetComplete(Int32, Object, Object)

Realiza procesos personalizados adicionales después de establecer un valor en la instancia de CollectionBase.

System_CAPS_protmethodOnValidate(Object)

Realiza procesos personalizados adicionales al validar un valor.

System_CAPS_pubmethodRemoveAt(Int32)

Quita el elemento en el índice especificado de la CollectionBase instancia. Este método no es reemplazable.

System_CAPS_pubmethodToString()

Retorna una cadena que representa al objeto actual. (Heredado de Object.)

NombreDescripción
System_CAPS_pubinterfaceSystem_CAPS_privmethodICollection.CopyTo(Array, Int32)

Copia la totalidad de CollectionBase en una matriz Array unidimensional compatible, comenzando en el índice especificado de la matriz de destino.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIList.Add(Object)

Agrega un objeto al final de CollectionBase.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIList.Contains(Object)

Determina si CollectionBase contiene un elemento específico.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIList.IndexOf(Object)

Busca el objeto Object especificado y devuelve el índice de base cero de la primera aparición en toda la colección CollectionBase.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIList.Insert(Int32, Object)

Inserta un elemento en CollectionBase, en el índice especificado.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIList.Remove(Object)

Quita la primera aparición de un objeto específico de la interfaz CollectionBase.

System_CAPS_pubinterfaceSystem_CAPS_privpropertyICollection.IsSynchronized

Obtiene un valor que indica si el acceso a la interfaz CollectionBase está sincronizado (es seguro para subprocesos).

System_CAPS_pubinterfaceSystem_CAPS_privpropertyICollection.SyncRoot

Obtiene un objeto que se puede usar para sincronizar el acceso a CollectionBase.

System_CAPS_pubinterfaceSystem_CAPS_privpropertyIList.IsFixedSize

Obtiene un valor que indica si la interfaz CollectionBase tiene un tamaño fijo.

System_CAPS_pubinterfaceSystem_CAPS_privpropertyIList.IsReadOnly

Obtiene un valor que indica si CollectionBase es de solo lectura.

System_CAPS_pubinterfaceSystem_CAPS_privpropertyIList.Item(Int32)

Obtiene o establece el elemento en el índice especificado.

NombreDescripción
System_CAPS_pubmethodAsParallel()

Sobrecargado. Habilita la paralelización de una consulta.(Defined by ParallelEnumerable.)

System_CAPS_pubmethodAsQueryable()

Sobrecargado. Convierte un IEnumerable para un IQueryable.(Defined by Queryable.)

System_CAPS_pubmethodCast(Of TResult)()

Convierte los elementos de un IEnumerable al tipo especificado.(Defined by Enumerable.)

System_CAPS_pubmethodOfType(Of TResult)()

Filtra los elementos de un IEnumerable basado en un tipo especificado.(Defined by Enumerable.)

Un CollectionBase instancia siempre es modificable. Consulte ReadOnlyCollectionBase para obtener una versión de solo lectura de esta clase.

La capacidad de un CollectionBase es el número de elementos de la CollectionBase puede contener. Cuando se agregan elementos a un CollectionBase, la capacidad aumenta automáticamente según lo requiera la reasignación. La capacidad puede reducirse mediante el establecimiento del Capacity propiedad explícitamente.

Notas para los implementadores:

Esta clase base se proporciona para facilitar a los implementadores que creen una colección fuertemente tipada personalizada. Se recomienda ampliar esta clase base en lugar de crear sus propios los implementadores.

El siguiente ejemplo de código implementa la CollectionBase clase y utiliza dicha implementación para crear una colección de Int16 objetos.

Imports System
Imports System.Collections


Public Class Int16Collection
   Inherits CollectionBase


   Default Public Property Item(index As Integer) As Int16
      Get
         Return CType(List(index), Int16)
      End Get
      Set
         List(index) = value
      End Set
   End Property


   Public Function Add(value As Int16) As Integer
      Return List.Add(value)
   End Function 'Add

   Public Function IndexOf(value As Int16) As Integer
      Return List.IndexOf(value)
   End Function 'IndexOf


   Public Sub Insert(index As Integer, value As Int16)
      List.Insert(index, value)
   End Sub 'Insert


   Public Sub Remove(value As Int16)
      List.Remove(value)
   End Sub 'Remove


   Public Function Contains(value As Int16) As Boolean
      ' If value is not of type Int16, this will return false.
      Return List.Contains(value)
   End Function 'Contains


   Protected Overrides Sub OnInsert(index As Integer, value As Object)
      ' Insert additional code to be run only when inserting values.
   End Sub 'OnInsert


   Protected Overrides Sub OnRemove(index As Integer, value As Object)
      ' Insert additional code to be run only when removing values.
   End Sub 'OnRemove


   Protected Overrides Sub OnSet(index As Integer, oldValue As Object, newValue As Object)
      ' Insert additional code to be run only when setting values.
   End Sub 'OnSet


   Protected Overrides Sub OnValidate(value As Object)
      If Not GetType(System.Int16).IsAssignableFrom(value.GetType()) Then
         Throw New ArgumentException("value must be of type Int16.", "value")
      End If
   End Sub 'OnValidate 

End Class 'Int16Collection


Public Class SamplesCollectionBase

   Public Shared Sub Main()

      ' Creates and initializes a new CollectionBase.
      Dim myI16 As New Int16Collection()

      ' Adds elements to the collection.
      myI16.Add( 1 )
      myI16.Add( 2 )
      myI16.Add( 3 )
      myI16.Add( 5 )
      myI16.Add( 7 )

      ' Display the contents of the collection using For Each. This is the preferred method.
      Console.WriteLine("Contents of the collection (using For Each):")
      PrintValues1(myI16)

      ' Display the contents of the collection using the enumerator.
      Console.WriteLine("Contents of the collection (using enumerator):")
      PrintValues2(myI16)

      ' Display the contents of the collection using the Count property and the Item property.
      Console.WriteLine("Initial contents of the collection (using Count and Item):")
      PrintIndexAndValues(myI16)

      ' Searches the collection with Contains and IndexOf.
      Console.WriteLine("Contains 3: {0}", myI16.Contains(3))
      Console.WriteLine("2 is at index {0}.", myI16.IndexOf(2))
      Console.WriteLine()

      ' Inserts an element into the collection at index 3.
      myI16.Insert(3, 13)
      Console.WriteLine("Contents of the collection after inserting at index 3:")
      PrintIndexAndValues(myI16)

      ' Gets and sets an element using the index.
      myI16(4) = 123
      Console.WriteLine("Contents of the collection after setting the element at index 4 to 123:")
      PrintIndexAndValues(myI16)

      ' Removes an element from the collection.
      myI16.Remove(2)

      ' Display the contents of the collection using the Count property and the Item property.
      Console.WriteLine("Contents of the collection after removing the element 2:")
      PrintIndexAndValues(myI16)

    End Sub 'Main


    ' Uses the Count property and the Item property.
    Public Shared Sub PrintIndexAndValues(myCol As Int16Collection)
      Dim i As Integer
      For i = 0 To myCol.Count - 1
          Console.WriteLine("   [{0}]:   {1}", i, myCol(i))
      Next i
      Console.WriteLine()
    End Sub 'PrintIndexAndValues


    ' Uses the For Each statement which hides the complexity of the enumerator.
    ' NOTE: The For Each statement is the preferred way of enumerating the contents of a collection.
    Public Shared Sub PrintValues1(myCol As Int16Collection)
      Dim i16 As Int16
      For Each i16 In  myCol
          Console.WriteLine("   {0}", i16)
      Next i16
      Console.WriteLine()
    End Sub 'PrintValues1


    ' Uses the enumerator. 
    ' NOTE: The For Each statement is the preferred way of enumerating the contents of a collection.
    Public Shared Sub PrintValues2(myCol As Int16Collection)
      Dim myEnumerator As System.Collections.IEnumerator = myCol.GetEnumerator()
      While myEnumerator.MoveNext()
          Console.WriteLine("   {0}", myEnumerator.Current)
      End While
      Console.WriteLine()
    End Sub 'PrintValues2

End Class 'SamplesCollectionBase


'This code produces the following output.
'
'Contents of the collection (using For Each):
'   1
'   2
'   3
'   5
'   7
'
'Contents of the collection (using enumerator):
'   1
'   2
'   3
'   5
'   7
'
'Initial contents of the collection (using Count and Item):
'   [0]:   1
'   [1]:   2
'   [2]:   3
'   [3]:   5
'   [4]:   7
'
'Contains 3: True
'2 is at index 1.
'
'Contents of the collection after inserting at index 3:
'   [0]:   1
'   [1]:   2
'   [2]:   3
'   [3]:   13
'   [4]:   5
'   [5]:   7
'
'Contents of the collection after setting the element at index 4 to 123:
'   [0]:   1
'   [1]:   2
'   [2]:   3
'   [3]:   13
'   [4]:   123
'   [5]:   7
'
'Contents of the collection after removing the element 2:
'   [0]:   1
'   [1]:   3
'   [2]:   13
'   [3]:   123
'   [4]:   7

Universal Windows Platform
Disponible desde 10
.NET Framework
Disponible desde 1.1

Público estático (Shared en Visual Basic) de este tipo es seguro para subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Esta implementación no proporciona un sincronizados contenedor (es seguro para subprocesos) para un CollectionBase, pero las clases derivadas pueden crear sus propias versiones sincronizadas de la CollectionBase con el SyncRoot propiedad.

Enumerar una colección no es intrínsecamente un procedimiento seguro para la ejecución de subprocesos. Incluso cuando una colección está sincronizada, otros subprocesos todavía pueden modificarla, lo que hace que el enumerador produzca una excepción. Con el fin de garantizar la seguridad para la ejecución de subprocesos durante la enumeración, se puede bloquear la colección durante toda la enumeración o detectar las excepciones resultantes de los cambios realizados por otros subprocesos.

Volver al principio
Mostrar:
© 2016 Microsoft