Visual C++ .NET/Collections/Hashtable

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

Add key and value to Hashtable

<source lang="csharp">

  1. include "stdafx.h"

using namespace System; using namespace System::Collections; void main(){

   Hashtable ^hash  = gcnew Hashtable();
   SortedList ^sort = gcnew SortedList();
   array<String^>^ keys   = gcnew array<String^> { "B", "A", "C", "D" };
   array<String^>^ skeys  = gcnew array<String^> { "A", "B", "C", "D" };
   array<String^>^ values = gcnew array<String^> { "a", "b", "c", "d" };
   for (int i = 0; i < keys->Length; i++)
   {
       hash->Add(keys[i], values[i]);
       sort->Add(keys[i], values[i]);
   }

}

 </source>


Get Enumerator from Hashtable

<source lang="csharp">

  1. include "stdafx.h"

using namespace System; using namespace System::Collections; void main(){

   Hashtable ^hash  = gcnew Hashtable();
   SortedList ^sort = gcnew SortedList();
   array<String^>^ keys   = gcnew array<String^> { "B", "A", "C", "D" };
   array<String^>^ skeys  = gcnew array<String^> { "A", "B", "C", "D" };
   array<String^>^ values = gcnew array<String^> { "a", "b", "c", "d" };
   for (int i = 0; i < keys->Length; i++)
   {
       hash->Add(keys[i], values[i]);
       sort->Add(keys[i], values[i]);
   }
   Console::WriteLine("\nBy enumerator");
   IDictionaryEnumerator ^enum1 = hash->GetEnumerator();
   IDictionaryEnumerator ^enum2 = sort->GetEnumerator();
   while ( enum1->MoveNext() && enum2->MoveNext())
   {
       Console::Write("{0} {1}\t\t", enum1->Key, enum1->Value);
       Console::WriteLine("{0} {1}", enum2->Key, enum2->Value);
   }

}

 </source>


Get Key enumerator from Hashtable

<source lang="csharp">

  1. include "stdafx.h"

using namespace System; using namespace System::Collections; void main(){

   Hashtable ^hash  = gcnew Hashtable();
   SortedList ^sort = gcnew SortedList();
   array<String^>^ keys   = gcnew array<String^> { "B", "A", "C", "D" };
   array<String^>^ skeys  = gcnew array<String^> { "A", "B", "C", "D" };
   array<String^>^ values = gcnew array<String^> { "a", "b", "c", "d" };
   for (int i = 0; i < keys->Length; i++)
   {
       hash->Add(keys[i], values[i]);
       sort->Add(keys[i], values[i]);
   }
   Console::WriteLine("\nEnumerate Key");
   IEnumerator ^keys1 = hash->Keys->GetEnumerator();
   IEnumerator ^keys2 = sort->Keys->GetEnumerator();
   while ( keys1->MoveNext() && keys2->MoveNext())
   {
       Console::Write("{0}\t\t", keys1->Current);
       Console::WriteLine("{0}", keys2->Current);
   }

}

 </source>


Get value enumerator from Hashtable

<source lang="csharp">

  1. include "stdafx.h"

using namespace System; using namespace System::Collections; void main(){

   Hashtable ^hash  = gcnew Hashtable();
   SortedList ^sort = gcnew SortedList();
   array<String^>^ keys   = gcnew array<String^> { "B", "A", "C", "D" };
   array<String^>^ skeys  = gcnew array<String^> { "A", "B", "C", "D" };
   array<String^>^ values = gcnew array<String^> { "a", "b", "c", "d" };
   for (int i = 0; i < keys->Length; i++)
   {
       hash->Add(keys[i], values[i]);
       sort->Add(keys[i], values[i]);
   }
   Console::WriteLine("\nEnumerate Value");
   IEnumerator ^vals1 = hash->Values->GetEnumerator();
   IEnumerator ^vals2 = sort->Values->GetEnumerator();
   while ( vals1->MoveNext() && vals2->MoveNext())
   {
       Console::Write("{0}\t\t", vals1->Current);
       Console::WriteLine("{0}", vals2->Current);
   }

}

 </source>


Get value from Hashtable by indexed property

<source lang="csharp">

  1. include "stdafx.h"

using namespace System; using namespace System::Collections; void main(){

   Hashtable ^hash  = gcnew Hashtable();
   SortedList ^sort = gcnew SortedList();
   array<String^>^ keys   = gcnew array<String^> { "B", "A", "C", "D" };
   array<String^>^ skeys  = gcnew array<String^> { "A", "B", "C", "D" };
   array<String^>^ values = gcnew array<String^> { "a", "b", "c", "d" };
   for (int i = 0; i < keys->Length; i++)
   {
       hash->Add(keys[i], values[i]);
       sort->Add(keys[i], values[i]);
   }
   Console::WriteLine("By indexed property");
   for (int i = 0; i < hash->Count; i++)
   {
       Console::WriteLine("{0} {1}\t\t{2} {3}", skeys[i], 
           hash[skeys[i]], skeys[i], sort[skeys[i]]);
   }

}

 </source>


Hashtable contains key

<source lang="csharp">

  1. include "stdafx.h"

using namespace System; using namespace System::Collections; void main(){

   Hashtable ^hash  = gcnew Hashtable();
   SortedList ^sort = gcnew SortedList();
   array<String^>^ keys   = gcnew array<String^> { "B", "A", "C", "D" };
   array<String^>^ skeys  = gcnew array<String^> { "A", "B", "C", "D" };
   array<String^>^ values = gcnew array<String^> { "a", "b", "c", "d" };
   for (int i = 0; i < keys->Length; i++)
   {
       hash->Add(keys[i], values[i]);
       sort->Add(keys[i], values[i]);
   }
   Console::WriteLine("\nContains a Key "A" and "Z"");
   Console::WriteLine("{0}\t\t{1}", hash->Contains("A"), sort->Contains("A")); 
   Console::WriteLine("{0}\t\t{1}", hash->ContainsKey("Z"), sort->ContainsKey("Z")); 

}

 </source>


Hashtable contains value

<source lang="csharp">

  1. include "stdafx.h"

using namespace System; using namespace System::Collections; void main(){

   Hashtable ^hash  = gcnew Hashtable();
   SortedList ^sort = gcnew SortedList();
   array<String^>^ keys   = gcnew array<String^> { "B", "A", "C", "D" };
   array<String^>^ skeys  = gcnew array<String^> { "A", "B", "C", "D" };
   array<String^>^ values = gcnew array<String^> { "a", "b", "c", "d" };
   for (int i = 0; i < keys->Length; i++)
   {
       hash->Add(keys[i], values[i]);
       sort->Add(keys[i], values[i]);
   }
   Console::WriteLine("\nContains a Value "a" and "c"");
   Console::WriteLine("{0}\t\t{1}", hash->ContainsValue("a"), sort->ContainsValue("a")); 
   Console::WriteLine("{0}\t\t{1}", hash->ContainsValue("c"), sort->ContainsValue("c")); 

}

 </source>