Visual C++ .NET/Collections/Hashtable
Версия от 18:31, 26 мая 2010; (обсуждение)
Содержание
Add key and value to Hashtable
<source lang="csharp">
- 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">
- 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">
- 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">
- 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">
- 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">
- 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">
- 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>