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

ReadOnlyCollectionBase (Clase)

 

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

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 abstract class ReadOnlyCollectionBase : 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 la instancia de ReadOnlyCollectionBase.

System_CAPS_pubmethodGetHashCode()

Sirve como una función hash para un tipo en particular. (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()

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

NombreDescripción
System_CAPS_pubmethodAsParallel()

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

System_CAPS_pubmethodAsQueryable()

Sobrecargado. Convierte una interfaz IEnumerable en IQueryable.(Defined by Queryable.)

System_CAPS_pubmethodCast<TResult>()

Convierte los elementos de IEnumerable en el tipo especificado.(Defined by Enumerable.)

System_CAPS_pubmethodOfType<TResult>()

Filtra los elementos de IEnumerable en función de un tipo especificado.(Defined by Enumerable.)

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

Notas para los implementadores:

Esta clase base se proporciona para facilitar a sus implementadores la creación de una colección personalizada de sólo lectura fuertemente tipada.Se recomienda a los implementadores ampliar esta clase base en lugar de crear una clase propia.Los miembros de esta clase base están protegidos y están destinados a su uso exclusivo a través de una clase derivada.

Esta clase hace que la colección subyacente esté disponible a través de la propiedad InnerList, cuyo fin es que la utilicen clases que se derivan directamente de ReadOnlyCollectionBase.La clase derivada debe garantizar que sus propios usuarios no puedan modificar la colección subyacente.

En el ejemplo de código siguiente se implementa la clase ReadOnlyCollectionBase.

using System;
using System.Collections;

public class ROCollection : ReadOnlyCollectionBase  {

   public ROCollection( IList sourceList )  {
      InnerList.AddRange( sourceList );
   }

   public Object this[ int index ]  {
      get  {
         return( InnerList[index] );
      }
   }

   public int IndexOf( Object value )  {
      return( InnerList.IndexOf( value ) );
   }

   public bool Contains( Object value )  {
      return( InnerList.Contains( value ) );
   }

}


public class SamplesCollectionBase  {

   public static void Main()  {

      // Create an ArrayList.
      ArrayList myAL = new 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 = new ROCollection( myAL );

      // Display the contents of the collection using foreach. This is the preferred method.
      Console.WriteLine( "Contents of the collection (using foreach):" );
      PrintValues1( myCol );

      // 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.
   public static void PrintIndexAndValues( ROCollection myCol )  {
      for ( int i = 0; i < myCol.Count; i++ )
         Console.WriteLine( "   [{0}]:   {1}", i, myCol[i] );
      Console.WriteLine();
   }

   // Uses the foreach statement which hides the complexity of the enumerator.
   // NOTE: The foreach statement is the preferred way of enumerating the contents of a collection.
   public static void PrintValues1( ROCollection myCol )  {
      foreach ( Object obj in myCol )
         Console.WriteLine( "   {0}", obj );
      Console.WriteLine();
   }

   // Uses the enumerator. 
   // NOTE: The foreach statement is the preferred way of enumerating the contents of a collection.
   public static 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 foreach):
   red
   blue
   yellow
   green
   orange
   purple

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.

*/

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

Los miembros estáticos públicos (Shared en Visual Basic) de este tipo son seguros para la ejecución de subprocesos.No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Esta implementación no proporciona un contenedor sincronizado (seguro para subprocesos) para una clase ReadOnlyCollectionBase, pero las clases derivadas pueden crear sus propias versiones sincronizadas de la clase ReadOnlyCollectionBase mediante la propiedad SyncRoot.

Por su naturaleza, la enumeración mediante una colección no es 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, es posible bloquear la colección durante toda la enumeración o detectar las excepciones provocadas por los cambios que efectúen otros subprocesos.

Volver al principio
Mostrar: