ComponentCollection Clase
TOC
Collapse the table of content
Expand the table of content
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

ComponentCollection (Clase)

 

Proporciona un contenedor de sólo 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 clase ComponentCollection utilizando la matriz de componentes especificada.

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 objeto Component de la colección por el índice de colección especificado.

System_CAPS_pubpropertyItem[String]

Obtiene cualquier componente de la colección que coincida 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.

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

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

Esta colección se hereda de ReadOnlyCollectionBase.La única forma de agregar objetos IComponent a esta colección es utilizar el constructor de clases.

Esta colección proporciona dos propiedades de indizador, un indizador de cadenas y un indizador de enteros.La propiedad de indizador de cadenas devuelve un componente de la colección por nombre si la propiedad Site de un componente de la colección no tiene el valor null y la propiedad Name de la propiedad Site del componente coincide con la cadena especificada.La propiedad de indizador de enteros devuelve el objeto IComponent por el índice de colección especificado.El método CopyTo copia el contenido de la colección en una matriz especificada, empezando a escribir por el índice especificado.

En el ejemplo de código siguiente muestra cómo se utiliza ComponentCollection para enumerar una colección de objetos BookComponent personalizados.

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

Universal Windows Platform
Disponible desde 10
.NET Framework
Disponible desde 1.1
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0

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.

Volver al principio
Mostrar:
© 2016 Microsoft