The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.
ComponentCollection Constructor (array<IComponent^>^)
.NET Framework (current version)
Initializes a new instance of the ComponentCollection class using the specified array of components.
Assembly: System (in System.dll)
Parameters
- components
-
Type:
array<System.ComponentModel::IComponent^>^
An array of IComponent objects to initialize the collection with.
This method adds each IComponent in the specified IComponent array to the collection.
The following code example demonstrates how to create a ComponentCollection from an array of 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. ref class LibraryContainer: public IContainer { private: ArrayList^ m_bookList; public: LibraryContainer() { m_bookList = gcnew ArrayList; } virtual void Add( IComponent^ book ) { //The book will be added without creation of the ISite object. m_bookList->Add( book ); } virtual void Add( IComponent^ book, String^ ISNDNNum ) { for ( int i = 0; i < m_bookList->Count; ++i ) { IComponent^ curObj = static_cast<IComponent^>(m_bookList->default[ i ]); if ( curObj->Site != nullptr ) { if ( curObj->Site->Name->Equals( ISNDNNum ) ) throw gcnew SystemException( "The ISBN number already exists in the container" ); } } ISBNSite^ data = gcnew ISBNSite( this,book ); data->Name = ISNDNNum; book->Site = data; m_bookList->Add( book ); } virtual void Remove( IComponent^ book ) { for ( int i = 0; i < m_bookList->Count; ++i ) { if ( book->Equals( m_bookList->default[ i ] ) ) { m_bookList->RemoveAt( i ); break; } } } property ComponentCollection^ Components { virtual ComponentCollection^ get() { array<IComponent^>^datalist = gcnew array<BookComponent^>(m_bookList->Count); m_bookList->CopyTo( datalist ); return gcnew ComponentCollection( datalist ); } } ~LibraryContainer() { for ( int i = 0; i < m_bookList->Count; ++i ) { IComponent^ curObj = static_cast<IComponent^>(m_bookList->default[ i ]); delete curObj; } m_bookList->Clear(); } }; [STAThreadAttribute] int main() { LibraryContainer^ cntrExmpl = gcnew LibraryContainer; try { BookComponent^ book1 = gcnew BookComponent( "Wizard's First Rule","Terry Gooodkind" ); cntrExmpl->Add( book1, "0812548051" ); BookComponent^ book2 = gcnew BookComponent( "Stone of Tears","Terry Gooodkind" ); cntrExmpl->Add( book2, "0812548094" ); BookComponent^ book3 = gcnew BookComponent( "Blood of the Fold","Terry Gooodkind" ); cntrExmpl->Add( book3, "0812551478" ); BookComponent^ book4 = gcnew 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: {0}", e->Message ); } ComponentCollection^ datalist = cntrExmpl->Components; IEnumerator^ denum = datalist->GetEnumerator(); while ( denum->MoveNext() ) { BookComponent^ cmp = static_cast<BookComponent^>(denum->Current); Console::WriteLine( "Book Title: {0}", cmp->Title ); Console::WriteLine( "Book Author: {0}", cmp->Author ); Console::WriteLine( "Book ISBN: {0}", cmp->Site->Name ); } return 0; }
.NET Framework
Available since 1.1
Available since 1.1
Show: