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 ReadOnlyCollectionBase

 

Publicado: octubre de 2016

Proporciona la clase base abstract para una colección fuertemente tipada de solo lectura no genérica.

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

System::Object
  System.Collections::ReadOnlyCollectionBase
    System.ComponentModel::ComponentCollection
    System.Configuration::ConfigurationLocationCollection
    System.Diagnostics::ProcessModuleCollection
    System.Diagnostics::ProcessThreadCollection
    System.DirectoryServices.ActiveDirectory::ActiveDirectoryRoleCollection
    System.DirectoryServices.ActiveDirectory::AdamInstanceCollection
    System.DirectoryServices.ActiveDirectory::AdamRoleCollection
    System.DirectoryServices.ActiveDirectory::ApplicationPartitionCollection
    System.DirectoryServices.ActiveDirectory::AttributeMetadataCollection
    System.DirectoryServices.ActiveDirectory::DomainCollection
    System.DirectoryServices.ActiveDirectory::DomainControllerCollection
    System.DirectoryServices.ActiveDirectory::ForestTrustDomainInfoCollection
    System.DirectoryServices.ActiveDirectory::ForestTrustRelationshipCollisionCollection
    System.DirectoryServices.ActiveDirectory::GlobalCatalogCollection
    System.DirectoryServices.ActiveDirectory::ReadOnlyActiveDirectorySchemaClassCollection
    System.DirectoryServices.ActiveDirectory::ReadOnlyActiveDirectorySchemaPropertyCollection
    System.DirectoryServices.ActiveDirectory::ReadOnlyDirectoryServerCollection
    System.DirectoryServices.ActiveDirectory::ReadOnlySiteCollection
    System.DirectoryServices.ActiveDirectory::ReadOnlySiteLinkBridgeCollection
    System.DirectoryServices.ActiveDirectory::ReadOnlySiteLinkCollection
    System.DirectoryServices.ActiveDirectory::ReadOnlyStringCollection
    System.DirectoryServices.ActiveDirectory::ReplicationConnectionCollection
    System.DirectoryServices.ActiveDirectory::ReplicationCursorCollection
    System.DirectoryServices.ActiveDirectory::ReplicationFailureCollection
    System.DirectoryServices.ActiveDirectory::ReplicationNeighborCollection
    System.DirectoryServices.ActiveDirectory::ReplicationOperationCollection
    System.DirectoryServices.ActiveDirectory::TopLevelNameCollection
    System.DirectoryServices.ActiveDirectory::TrustRelationshipInformationCollection
    System.DirectoryServices.Protocols::PartialResultsCollection
    System.DirectoryServices.Protocols::SearchResultEntryCollection
    System.DirectoryServices.Protocols::SearchResultReferenceCollection
    System.DirectoryServices::ResultPropertyValueCollection
    System.Drawing.Design::CategoryNameCollection
    System.Drawing.Design::ToolboxItemCollection
    System.Security.AccessControl::AuthorizationRuleCollection
    System.Security.Authentication.ExtendedProtection::ServiceNameCollection
    System.Web.Management::WebBaseEventCollection
    System.Web.UI.Design::ClientScriptItemCollection
    System.Web.UI.WebControls.WebParts::CatalogPartCollection
    System.Web.UI.WebControls.WebParts::ConnectionInterfaceCollection
    System.Web.UI.WebControls.WebParts::ConsumerConnectionPointCollection
    System.Web.UI.WebControls.WebParts::EditorPartCollection
    System.Web.UI.WebControls.WebParts::ProviderConnectionPointCollection
    System.Web.UI.WebControls.WebParts::TransformerTypeCollection
    System.Web.UI.WebControls.WebParts::WebPartCollection
    System.Web.UI.WebControls.WebParts::WebPartDescriptionCollection
    System.Web.UI.WebControls.WebParts::WebPartVerbCollection
    System.Web.UI.WebControls.WebParts::WebPartZoneCollection
    System.Windows.Forms::FormCollection
    System.Windows.Forms::InputLanguageCollection

[SerializableAttribute]
[ComVisibleAttribute(true)]
public ref class ReadOnlyCollectionBase abstract : ICollection, 
	IEnumerable

NombreDescripción
System_CAPS_protmethodReadOnlyCollectionBase()

Inicializa una nueva instancia de la clase ReadOnlyCollectionBase.

NombreDescripción
System_CAPS_pubpropertyCount

Obtiene el número de elementos incluidos en la instancia de ReadOnlyCollectionBase.

System_CAPS_protpropertyInnerList

Obtiene la lista de elementos incluidos en la instancia de ReadOnlyCollectionBase.

NombreDescripción
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 ReadOnlyCollectionBase 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_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 ReadOnlyCollectionBase en una matriz Array unidimensional compatible, comenzando en el índice especificado de la matriz de destino.

System_CAPS_pubinterfaceSystem_CAPS_privpropertyICollection::IsSynchronized

Obtiene un valor que indica si el acceso a un objeto ReadOnlyCollectionBase está sincronizado (es seguro para subprocesos).

System_CAPS_pubinterfaceSystem_CAPS_privpropertyICollection::SyncRoot

Obtiene un objeto que se puede utilizar para sincronizar el acceso a un objeto ReadOnlyCollectionBase.

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).

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

Notas para implementadores:

Esta clase base se proporciona para facilitar a los implementadores crear una colección personalizada de sólo lectura fuertemente tipada. Se recomienda ampliar esta clase base en lugar de crear sus propios los implementadores. Los miembros de esta clase base están protegidos y están diseñados para utilizarse a través de una clase derivada solo.

Esta clase hace que la colección subyacente disponible a través del InnerList propiedad, que está pensado para su uso exclusivo de las clases que se derivan directamente de ReadOnlyCollectionBase. La clase derivada debe asegurarse de que sus propios usuarios no pueden modificar la colección subyacente.

El siguiente ejemplo de código implementa la ReadOnlyCollectionBase clase.

using namespace System;
using namespace System::Collections;
public ref class ROCollection: public ReadOnlyCollectionBase
{
public:
   ROCollection( IList^ sourceList )
   {
      InnerList->AddRange( sourceList );
   }

   property Object^ Item [int]
   {
      Object^ get( int index )
      {
         return (InnerList[ index ]);
      }

   }
   int IndexOf( Object^ value )
   {
      return (InnerList->IndexOf( value ));
   }

   bool Contains( Object^ value )
   {
      return (InnerList->Contains( value ));
   }

};

void PrintIndexAndValues( ROCollection^ myCol );
void PrintValues2( ROCollection^ myCol );
int main()
{
   // Create an ArrayList.
   ArrayList^ myAL = gcnew ArrayList;
   myAL->Add( "red" );
   myAL->Add( "blue" );
   myAL->Add( "yellow" );
   myAL->Add( "green" );
   myAL->Add( "orange" );
   myAL->Add( "purple" );

   // Create a new ROCollection that contains the elements in myAL.
   ROCollection^ myCol = gcnew ROCollection( myAL );

   // Display the contents of the collection using the enumerator.
   Console::WriteLine( "Contents of the collection (using enumerator):" );
   PrintValues2( myCol );

   // Display the contents of the collection using the Count property and the Item property.
   Console::WriteLine( "Contents of the collection (using Count and Item):" );
   PrintIndexAndValues( myCol );

   // Search the collection with Contains and IndexOf.
   Console::WriteLine( "Contains yellow: {0}", myCol->Contains( "yellow" ) );
   Console::WriteLine( "orange is at index {0}.", myCol->IndexOf( "orange" ) );
   Console::WriteLine();
}


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


// Uses the enumerator. 
void PrintValues2( ROCollection^ 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):
   red
   blue
   yellow
   green
   orange
   purple

Contents of the collection (using Count and Item):
   [0]:   red
   [1]:   blue
   [2]:   yellow
   [3]:   green
   [4]:   orange
   [5]:   purple

Contains yellow: True
orange is at index 4.

*/

Plataforma universal de Windows
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 ReadOnlyCollectionBase, pero las clases derivadas pueden crear sus propias versiones sincronizadas de la ReadOnlyCollectionBase con el SyncRoot propiedad.

Enumerar una colección no es intrínsecamente un procedimiento seguro para 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: