NameObjectCollectionBase.BaseHasKeys Method
Gets a value indicating whether the NameObjectCollectionBase instance contains entries whose keys are not a null reference (Nothing in Visual Basic).
[Visual Basic] Protected Function BaseHasKeys() As Boolean [C#] protected bool BaseHasKeys(); [C++] protected: bool BaseHasKeys(); [JScript] protected function BaseHasKeys() : Boolean;
Return Value
true if the NameObjectCollectionBase instance contains entries whose keys are not a null reference (Nothing in Visual Basic); otherwise, false.
Example
[Visual Basic, C#, C++] The following code example uses BaseHasKeys to determine if the collection contains keys that are not a null reference (Nothing in Visual Basic).
[Visual Basic] Imports System Imports System.Collections Imports System.Collections.Specialized Public Class MyCollection Inherits NameObjectCollectionBase Private _de As New DictionaryEntry() ' Gets a key-and-value pair (DictionaryEntry) using an index. Default Public ReadOnly Property Item(index As Integer) As DictionaryEntry Get _de.Key = Me.BaseGetKey(index) _de.Value = Me.BaseGet(index) Return _de End Get End Property ' Creates an empty collection. Public Sub New() End Sub 'New ' Adds an entry to the collection. Public Sub Add(key As [String], value As [Object]) Me.BaseAdd(key, value) End Sub 'Add ' Gets a value indicating whether the collection contains keys that are not a null reference. Public ReadOnly Property HasKeys() As [Boolean] Get Return Me.BaseHasKeys() End Get End Property End Class 'MyCollection Public Class SamplesNameObjectCollectionBase Public Shared Sub Main() ' Creates an empty MyCollection instance. Dim myCol As New MyCollection() Console.WriteLine("Initial state of the collection (Count = {0}):", myCol.Count) PrintKeysAndValues(myCol) Console.WriteLine("HasKeys? {0}", myCol.HasKeys) Console.WriteLine() ' Adds an item to the collection. myCol.Add("blue", "sky") Console.WriteLine("Initial state of the collection (Count = {0}):", myCol.Count) PrintKeysAndValues(myCol) Console.WriteLine("HasKeys? {0}", myCol.HasKeys) End Sub 'Main Public Shared Sub PrintKeysAndValues(myCol As MyCollection) Dim i As Integer For i = 0 To myCol.Count - 1 Console.WriteLine("[{0}] : {1}, {2}", i, myCol(i).Key, myCol(i).Value) Next i End Sub 'PrintKeysAndValues End Class 'SamplesNameObjectCollectionBase 'This code produces the following output. ' 'Initial state of the collection (Count = 0): 'HasKeys? False ' 'Initial state of the collection (Count = 1): '[0] : blue, sky 'HasKeys? True [C#] using System; using System.Collections; using System.Collections.Specialized; public class MyCollection : NameObjectCollectionBase { private DictionaryEntry _de = new DictionaryEntry(); // Gets a key-and-value pair (DictionaryEntry) using an index. public DictionaryEntry this[ int index ] { get { _de.Key = this.BaseGetKey( index ); _de.Value = this.BaseGet( index ); return( _de ); } } // Creates an empty collection. public MyCollection() { } // Adds an entry to the collection. public void Add( String key, Object value ) { this.BaseAdd( key, value ); } // Gets a value indicating whether the collection contains keys that are not a null reference. public Boolean HasKeys { get { return( this.BaseHasKeys() ); } } } public class SamplesNameObjectCollectionBase { public static void Main() { // Creates an empty MyCollection instance. MyCollection myCol = new MyCollection(); Console.WriteLine( "Initial state of the collection (Count = {0}):", myCol.Count ); PrintKeysAndValues( myCol ); Console.WriteLine( "HasKeys? {0}", myCol.HasKeys ); Console.WriteLine(); // Adds an item to the collection. myCol.Add( "blue", "sky" ); Console.WriteLine( "Initial state of the collection (Count = {0}):", myCol.Count ); PrintKeysAndValues( myCol ); Console.WriteLine( "HasKeys? {0}", myCol.HasKeys ); } public static void PrintKeysAndValues( MyCollection myCol ) { for ( int i = 0; i < myCol.Count; i++ ) { Console.WriteLine( "[{0}] : {1}, {2}", i, myCol[i].Key, myCol[i].Value ); } } } /* This code produces the following output. Initial state of the collection (Count = 0): HasKeys? False Initial state of the collection (Count = 1): [0] : blue, sky HasKeys? True */ [C++] #using <mscorlib.dll> #using <system.dll> using namespace System; using namespace System::Collections; using namespace System::Collections::Specialized; public __gc class MyCollection : public NameObjectCollectionBase { private: DictionaryEntry _de; public: // Gets a key-and-value pair (DictionaryEntry) using an index. __property DictionaryEntry get_Item( int index ) { _de.Key = this->BaseGetKey(index); _de.Value = this->BaseGet(index); return(_de); } // Creates an empty collection. MyCollection() { } // Adds an entry to the collection. void Add(String* key, Object* value) { this->BaseAdd(key, value); } // Gets a value indicating whether the collection contains keys that are not a 0 reference. __property Boolean get_HasKeys() { return(this->BaseHasKeys()); } }; void PrintKeysAndValues(MyCollection* myCol) { for (int i = 0; i < myCol->Count; i++) { Console::WriteLine(S"[{0}] : {1}, {2}", __box(i), myCol->Item[i].Key, myCol->Item[i].Value); } } int main() { // Creates an empty MyCollection instance. MyCollection* myCol = new MyCollection(); Console::WriteLine(S"Initial state of the collection (Count = {0}):", __box(myCol->Count)); PrintKeysAndValues(myCol); Console::WriteLine(S"HasKeys? {0}", __box(myCol->HasKeys)); Console::WriteLine(); // Adds an item to the collection. myCol->Add(S"blue", S"sky"); Console::WriteLine(S"Initial state of the collection (Count = {0}):", __box(myCol->Count)); PrintKeysAndValues(myCol); Console::WriteLine(S"HasKeys? {0}", __box(myCol->HasKeys)); } /* This code produces the following output. Initial state of the collection (Count = 0): HasKeys? False Initial state of the collection (Count = 1): [0] : blue, sky HasKeys? True */
[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button
in the upper-left corner of the page.
Requirements
Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family, .NET Compact Framework
See Also
NameObjectCollectionBase Class | NameObjectCollectionBase Members | System.Collections.Specialized Namespace