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

Clase CollectionBase

 

Publicado: octubre de 2016

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 ref class CollectionBase abstract : 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 la 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()

Devuelve 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.(Definido por ParallelEnumerable).

System_CAPS_pubmethodAsQueryable()

Sobrecargado. Convierte un IEnumerable para un IQueryable.(Definido por Queryable).

System_CAPS_pubmethodCast<TResult>()

Convierte los elementos de un IEnumerable al tipo especificado.(Definido por Enumerable).

System_CAPS_pubmethodOfType<TResult>()

Filtra los elementos de un IEnumerable basado en un tipo especificado.(Definido por Enumerable).

A T:System.Collections.CollectionBase instance is always modifiable. See T:System.Collections.ReadOnlyCollectionBase for a read-only version of this class.

The capacity of a T:System.Collections.CollectionBase is the number of elements the T:System.Collections.CollectionBase can hold. As elements are added to a T:System.Collections.CollectionBase, the capacity is automatically increased as required through reallocation. The capacity can be decreased by setting the P:System.Collections.CollectionBase.Capacity property explicitly.

Notas para implementadores:

This base class is provided to make it easier for implementers to create a strongly typed custom collection. Implementers are encouraged to extend this base class instead of creating their own.

The following code example implements the T:System.Collections.CollectionBase class and uses that implementation to create a collection of T:System.Int16 objects.

#using <System.dll>

using namespace System;
using namespace System::Collections;

public ref class Int16Collection: public CollectionBase
{
public:

   property Int16 Item [int]
   {
      Int16 get( int index )
      {
         return ( (Int16)(List[ index ]));
      }

      void set( int index, Int16 value )
      {
         List[ index ] = value;
      }
   }
   int Add( Int16 value )
   {
      return (List->Add( value ));
   }

   int IndexOf( Int16 value )
   {
      return (List->IndexOf( value ));
   }

   void Insert( int index, Int16 value )
   {
      List->Insert( index, value );
   }

   void Remove( Int16 value )
   {
      List->Remove( value );
   }

   bool Contains( Int16 value )
   {
      // If value is not of type Int16, this will return false.
      return (List->Contains( value ));
   }

protected:
   virtual void OnInsert( int /*index*/, Object^ /*value*/ ) override
   {
      // Insert additional code to be run only when inserting values.
   }

   virtual void OnRemove( int /*index*/, Object^ /*value*/ ) override
   {
      // Insert additional code to be run only when removing values.
   }

   virtual void OnSet( int /*index*/, Object^ /*oldValue*/, Object^ /*newValue*/ ) override
   {
      // Insert additional code to be run only when setting values.
   }

   virtual void OnValidate( Object^ value ) override
   {
      if ( value->GetType() != Type::GetType( "System.Int16" ) )
            throw gcnew ArgumentException( "value must be of type Int16.","value" );
   }

};

void PrintIndexAndValues( Int16Collection^ myCol );
void PrintValues2( Int16Collection^ myCol );
int main()
{
   // Create and initialize a new CollectionBase.
   Int16Collection^ myI16 = gcnew Int16Collection;

   // Add elements to the collection.
   myI16->Add( (Int16)1 );
   myI16->Add( (Int16)2 );
   myI16->Add( (Int16)3 );
   myI16->Add( (Int16)5 );
   myI16->Add( (Int16)7 );

   // 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 );

   // Search 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();

   // Insert an element into the collection at index 3.
   myI16->Insert( 3, (Int16)13 );
   Console::WriteLine( "Contents of the collection after inserting at index 3:" );
   PrintIndexAndValues( myI16 );

   // Get and set an element using the index.
   myI16->Item[ 4 ] = 123;
   Console::WriteLine( "Contents of the collection after setting the element at index 4 to 123:" );
   PrintIndexAndValues( myI16 );

   // Remove an element from the collection.
   myI16->Remove( (Int16)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 );
}

// Uses the Count property and the Item property.
void PrintIndexAndValues( Int16Collection^ myCol )
{
   for ( int i = 0; i < myCol->Count; i++ )
      Console::WriteLine( "   [{0}]:   {1}", i, myCol->Item[ i ] );
   Console::WriteLine();
}

// Uses the enumerator. 
void PrintValues2( Int16Collection^ myCol )
{
   System::Collections::IEnumerator^ myEnumerator = myCol->GetEnumerator();
   while ( myEnumerator->MoveNext() )
      Console::WriteLine( "   {0}", myEnumerator->Current );

   Console::WriteLine();
}

/* 
This code produces the following output.

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

*/

Plataforma universal de Windows
Disponible desde 10
.NET Framework
Disponible desde 1.1

Public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

This implementation does not provide a synchronized (thread safe) wrapper for a T:System.Collections.CollectionBase, but derived classes can create their own synchronized versions of the T:System.Collections.CollectionBase using the P:System.Collections.ICollection.SyncRoot property.

Enumerating through a collection is intrinsically not a thread safe procedure. Even when a collection is synchronized, other threads can still modify the collection, which causes the enumerator to throw an exception. To guarantee thread safety during enumeration, you can either lock the collection during the entire enumeration or catch the exceptions resulting from changes made by other threads.

Volver al principio
Mostrar: