Export (0) Print
Expand All

NameObjectCollectionBase::BaseClear Method

Removes all entries from the NameObjectCollectionBase instance.

Namespace:  System.Collections.Specialized
Assembly:  System (in System.dll)

protected:
void BaseClear()

ExceptionCondition
NotSupportedException

The collection is read-only.

Count is set to zero, and references to other objects from elements of the collection are also released.

This method is an O(1) operation.

The following code example uses BaseClear to remove all elements from a NameObjectCollectionBase.

#using <system.dll>

using namespace System;
using namespace System::Collections;
using namespace System::Collections::Specialized;
public ref class MyCollection: public NameObjectCollectionBase
{
private:
   DictionaryEntry _de;

public:

   property DictionaryEntry Item [ int ]
   {
      // Gets a key-and-value pair (DictionaryEntry) using an index.
      DictionaryEntry get( int index )
      {
         _de.Key = this->BaseGetKey( index );
         _de.Value = this->BaseGet( index );
         return (_de);
      }
   }

   // Adds elements from an IDictionary* into the new collection.
   MyCollection( IDictionary^ d )
   {
      IEnumerator^ myEnum = d->GetEnumerator();
      while ( myEnum->MoveNext() )
      {
         DictionaryEntry^ de = safe_cast<DictionaryEntry^>(myEnum->Current);
         this->BaseAdd( safe_cast<String^>(de->Key), de->Value );
      }
   }

   // Clears all the elements in the collection. 
   void Clear()
   {
      this->BaseClear();
   }
};

static void PrintKeysAndValues( MyCollection^ myCol )
{
   for ( int i = 0; i < myCol->Count; i++ )
   {
      Console::WriteLine( "[{0}] : {1}, {2}", i, myCol->Item[ i ].Key, myCol->Item[ i ].Value );

   }
}

int main()
{
   // Creates and initializes a new MyCollection instance.
   IDictionary^ d = gcnew ListDictionary;
   d->Add( "red", "apple" );
   d->Add( "yellow", "banana" );
   d->Add( "green", "pear" );
   MyCollection^ myCol = gcnew MyCollection( d );
   Console::WriteLine( "Initial state of the collection (Count = {0}):", myCol->Count );
   PrintKeysAndValues( myCol );

   // Removes all elements from the collection.
   myCol->Clear();
   Console::WriteLine( "After clearing the collection (Count = {0}):", myCol->Count );
   PrintKeysAndValues( myCol );
}

/*
This code produces the following output.

Initial state of the collection (Count = 3):
[0] : red, apple
[1] : yellow, banana
[2] : green, pear
After clearing the collection (Count = 0):

*/

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0, 1.1

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

XNA Framework

Supported in: 3.0, 2.0, 1.0
Show:
© 2015 Microsoft