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 ComponentCollection

 

Publicado: octubre de 2016

Ofrece un contenedor de solo lectura para una colección de objetos IComponent.

Espacio de nombres:   System.ComponentModel
Ensamblado:  System (en System.dll)

System.Object
  System.Collections.ReadOnlyCollectionBase
    System.ComponentModel.ComponentCollection

[ComVisibleAttribute(true)]
[HostProtectionAttribute(SecurityAction.LinkDemand, Synchronization = true)]
public class ComponentCollection : ReadOnlyCollectionBase

NombreDescripción
System_CAPS_pubmethodComponentCollection(IComponent[])

Inicializa una nueva instancia de la ComponentCollection clase utilizando la matriz especificada de los componentes.

NombreDescripción
System_CAPS_pubpropertyCount

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

System_CAPS_protpropertyInnerList

Obtiene la lista de elementos incluidos en la instancia de ReadOnlyCollectionBase.(Heredado de ReadOnlyCollectionBase).

System_CAPS_pubpropertyItem[Int32]

Obtiene el Component en la colección en el índice de la colección especificada.

System_CAPS_pubpropertyItem[String]

Obtiene cualquier componente de la colección que coincide con el nombre especificado.

NombreDescripción
System_CAPS_pubmethodCopyTo(IComponent[], Int32)

Copia toda la colección en una matriz, empezando a escribir por el índice especificado de la matriz.

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.(Heredado de ReadOnlyCollectionBase).

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.(Heredado de ReadOnlyCollectionBase).

System_CAPS_pubinterfaceSystem_CAPS_privpropertyICollection.IsSynchronized

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

System_CAPS_pubinterfaceSystem_CAPS_privpropertyICollection.SyncRoot

Obtiene un objeto que se puede utilizar para sincronizar el acceso a un objeto ReadOnlyCollectionBase.(Heredado de 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).

This collection inherits from T:System.Collections.ReadOnlyCollectionBase. The only way to add T:System.ComponentModel.IComponent objects to this collection is to use the class constructor.

This collection provides two indexer properties, a string indexer and an integer indexer. The string indexer property returns a component in the collection by name if the P:System.ComponentModel.IComponent.Site property of a component in the collection is not null and the P:System.ComponentModel.ISite.Name property of the P:System.ComponentModel.IComponent.Site property of the component matches the specified string. The integer indexer property returns the T:System.ComponentModel.IComponent at the specified collection index. The M:System.ComponentModel.ComponentCollection.CopyTo(System.ComponentModel.IComponent[],System.Int32) method copies the contents of the collection to a specified array, beginning writing to the array at the specified index.

The following code example demonstrates how to use a T:System.ComponentModel.ComponentCollection to enumerate a collection of custom BookComponent objects.

//This code segment implements the IContainer interface.  The code segment 
//containing the implementation of ISite and IComponent can be found in the documentation
//for those interfaces.

//Implement the LibraryContainer using the IContainer interface.

class LibraryContainer : IContainer
{
	private ArrayList m_bookList;

	public LibraryContainer()
	{
		m_bookList = new ArrayList();
	}

	public virtual void Add(IComponent book)
	{
		//The book will be added without creation of the ISite object.
		m_bookList.Add(book);
	}

	public virtual void Add(IComponent book, string ISNDNNum)
	{
		for(int i =0; i < m_bookList.Count; ++i)
		{
			IComponent curObj = (IComponent)m_bookList[i];
			if(curObj.Site != null)
			{
				if(curObj.Site.Name.Equals(ISNDNNum))
					throw new SystemException("The ISBN number already exists in the container"); 
			}
		}

		ISBNSite data = new ISBNSite(this, book);
		data.Name = ISNDNNum;
		book.Site = data;
		m_bookList.Add(book);
	}

	public virtual void Remove(IComponent book)
	{
		for(int i =0; i < m_bookList.Count; ++i)
		{				
			if(book.Equals(m_bookList[i]))
			{
				m_bookList.RemoveAt(i);
					break;
			}
		}
	}

	public ComponentCollection Components
	{
		get
		{
			IComponent[] datalist = new BookComponent[m_bookList.Count];
			m_bookList.CopyTo(datalist);
			return new ComponentCollection(datalist);
		}
	}

	public virtual void Dispose()
	{	
		for(int i =0; i < m_bookList.Count; ++i)
		{
			IComponent curObj = (IComponent)m_bookList[i];
			curObj.Dispose();
		}

		m_bookList.Clear();
	}

	static void Main(string[] args)
	{
		LibraryContainer cntrExmpl = new LibraryContainer();

		try
		{
			BookComponent book1 = new BookComponent("Wizard's First Rule", "Terry Gooodkind");
			cntrExmpl.Add(book1, "0812548051");
			BookComponent book2 = new BookComponent("Stone of Tears", "Terry Gooodkind");
			cntrExmpl.Add(book2, "0812548094");
			BookComponent book3 = new BookComponent("Blood of the Fold", "Terry Gooodkind");
			cntrExmpl.Add(book3, "0812551478");
			BookComponent book4 = new BookComponent("The Soul of the Fire", "Terry Gooodkind");
			//This will generate exception because the ISBN already exists in the container.
			cntrExmpl.Add(book4, "0812551478");
		}
		catch(SystemException e)
		{
			Console.WriteLine("Error description: " + e.Message);
		}

		ComponentCollection datalist =cntrExmpl.Components;
		IEnumerator denum = datalist.GetEnumerator();

		while(denum.MoveNext())
		{
			BookComponent cmp = (BookComponent)denum.Current;
			Console.WriteLine("Book Title: " + cmp.Title);
			Console.WriteLine("Book Author: " + cmp.Author);
			Console.WriteLine("Book ISBN: " + cmp.Site.Name);
		}
	}
}

.NET Framework
Disponible desde 1.1
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0

Cualquier miembro ( Compartido en Visual Basic) estático público de este tipo es seguro para subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.

Volver al principio
Mostrar: