Csharp/CSharp Tutorial/Data Structure/Hashtable
Версия от 15:31, 26 мая 2010; (обсуждение)
Содержание
- 1 Add elements to the table and Use the keys to obtain the values
- 2 Add key-value pair to Hashtable by using the indexer
- 3 Clear all key/value pairs in a Hashtable
- 4 Copy the keys from Hashtable into an array using the CopyTo() method and then display the array contents
- 5 Copy the values from Hashtable into an array using the CopyTo() method and then display the array contents
- 6 Mark a Hashtable to be Synchronized
- 7 Remove key/value pairs from Hashtable
- 8 Use foreach statement to loop through all keys in a hashtable
- 9 Use the ContainsKey() method to check if Hashtable contains a key
- 10 Use the ContainsValue() method to check if Hashtable contains a value
- 11 Use the Remove() method to remove FL from Hashtable
Add elements to the table and Use the keys to obtain the values
using System;
using System.Collections;
class HashtableDemo {
public static void Main() {
Hashtable ht = new Hashtable();
ht.Add("a", "A");
ht.Add("b", "B");
ht.Add("c", "C");
ht.Add("e", "E");
// Get a collection of the keys.
ICollection c = ht.Keys;
foreach(string str in c)
Console.WriteLine(str + ": " + ht[str]);
}
}
a: A b: B c: C e: E
Add key-value pair to Hashtable by using the indexer
using System;
using System.Collections;
class HashtableDemo {
public static void Main() {
Hashtable ht = new Hashtable();
ht.Add("a", "A");
ht.Add("b", "B");
ht.Add("c", "C");
ht.Add("e", "E");
ht["f"] = "F";
// Get a collection of the keys.
ICollection c = ht.Keys;
foreach(string str in c)
Console.WriteLine(str + ": " + ht[str]);
}
}
a: A b: B c: C e: E f: F
Clear all key/value pairs in a Hashtable
using System;
using System.Collections;
class MainClass
{
static void Main(string[] args)
{
Hashtable a = new Hashtable(10);
a.Add(100, "Arrays");
a.Add(200, "Classes");
a.Clear();
}
}
Copy the keys from Hashtable into an array using the CopyTo() method and then display the array contents
using System;
using System.Collections;
class MainClass
{
public static void Main()
{
Hashtable myHashtable = new Hashtable();
myHashtable.Add("AL", "Alabama");
myHashtable.Add("CA", "California");
myHashtable.Add("FL", "Florida");
myHashtable.Add("NY", "New York");
myHashtable.Add("WY", "Wyoming");
foreach (string myKey in myHashtable.Keys)
{
Console.WriteLine("myKey = " + myKey);
}
foreach(string myValue in myHashtable.Values)
{
Console.WriteLine("myValue = " + myValue);
}
Console.WriteLine("Copying keys to myKeys array");
string[] myKeys = new string[5];
myHashtable.Keys.CopyTo(myKeys, 0);
for (int counter = 0; counter < myKeys.Length; counter++) {
Console.WriteLine("myKeys[" + counter + "] = " + myKeys[counter]);
}
}
}
myKey = NY myKey = CA myKey = FL myKey = WY myKey = AL myValue = New York myValue = California myValue = Florida myValue = Wyoming myValue = Alabama Copying keys to myKeys array myKeys[0] = NY myKeys[1] = CA myKeys[2] = FL myKeys[3] = WY myKeys[4] = AL
Copy the values from Hashtable into an array using the CopyTo() method and then display the array contents
using System;
using System.Collections;
class MainClass
{
public static void Main()
{
Hashtable myHashtable = new Hashtable();
myHashtable.Add("AL", "Alabama");
myHashtable.Add("CA", "California");
myHashtable.Add("FL", "Florida");
myHashtable.Add("NY", "New York");
myHashtable.Add("WY", "Wyoming");
foreach (string myKey in myHashtable.Keys)
{
Console.WriteLine("myKey = " + myKey);
}
foreach(string myValue in myHashtable.Values)
{
Console.WriteLine("myValue = " + myValue);
}
Console.WriteLine("Copying values to myValues array");
string[] myValues = new string[5];
myHashtable.Values.CopyTo(myValues, 0);
for (int counter = 0; counter < myValues.Length; counter++)
{
Console.WriteLine("myValues[" + counter + "] = " + myValues[counter]);
}
}
}
myKey = NY myKey = CA myKey = FL myKey = WY myKey = AL myValue = New York myValue = California myValue = Florida myValue = Wyoming myValue = Alabama Copying values to myValues array myValues[0] = New York myValues[1] = California myValues[2] = Florida myValues[3] = Wyoming myValues[4] = Alabama
Mark a Hashtable to be Synchronized
using System;
using System.Collections;
class MainClass
{
static void Main(string[] args)
{
Hashtable a = new Hashtable(10);
Hashtable.Synchronized(a);
}
}
Remove key/value pairs from Hashtable
using System;
using System.Collections;
class MainClass
{
static void Main(string[] args)
{
Hashtable a = new Hashtable(10);
a.Add(100, "A");
a.Add(200, "C");
a.Remove(100);
a.Remove(200);
}
}
Use foreach statement to loop through all keys in a hashtable
using System;
using System.Collections;
class MainClass
{
public static void Main()
{
Hashtable hash = new Hashtable();
hash.Add("A", "1");
hash.Add("B", "2");
hash.Add("C", "3");
hash.Add("D", "4");
hash.Add("E", "5");
foreach (string firstName in hash.Keys)
{
Console.WriteLine("{0} {1}", firstName, hash[firstName]);
}
}
}
A 1 B 2 C 3 D 4 E 5
Use the ContainsKey() method to check if Hashtable contains a key
using System;
using System.Collections;
class MainClass
{
public static void Main()
{
Hashtable myHashtable = new Hashtable();
myHashtable.Add("AL", "Alabama");
myHashtable.Add("CA", "California");
myHashtable.Add("FL", "Florida");
myHashtable.Add("NY", "New York");
myHashtable.Add("WY", "Wyoming");
foreach (string myKey in myHashtable.Keys)
{
Console.WriteLine("myKey = " + myKey);
}
foreach(string myValue in myHashtable.Values)
{
Console.WriteLine("myValue = " + myValue);
}
if (myHashtable.ContainsKey("FL"))
{
Console.WriteLine("myHashtable contains the key FL");
}
}
}
myKey = NY myKey = CA myKey = FL myKey = WY myKey = AL myValue = New York myValue = California myValue = Florida myValue = Wyoming myValue = Alabama myHashtable contains the key FL
Use the ContainsValue() method to check if Hashtable contains a value
using System;
using System.Collections;
class MainClass
{
public static void Main()
{
Hashtable myHashtable = new Hashtable();
myHashtable.Add("AL", "Alabama");
myHashtable.Add("CA", "California");
myHashtable.Add("FL", "Florida");
myHashtable.Add("NY", "New York");
myHashtable.Add("WY", "Wyoming");
foreach (string myKey in myHashtable.Keys)
{
Console.WriteLine("myKey = " + myKey);
}
foreach(string myValue in myHashtable.Values)
{
Console.WriteLine("myValue = " + myValue);
}
if (myHashtable.ContainsValue("Florida"))
{
Console.WriteLine("myHashtable contains the value Florida");
}
}
}
myKey = NY myKey = CA myKey = FL myKey = WY myKey = AL myValue = New York myValue = California myValue = Florida myValue = Wyoming myValue = Alabama myHashtable contains the value Florida
Use the Remove() method to remove FL from Hashtable
using System;
using System.Collections;
class MainClass
{
public static void Main()
{
Hashtable myHashtable = new Hashtable();
myHashtable.Add("AL", "Alabama");
myHashtable.Add("CA", "California");
myHashtable.Add("FL", "Florida");
myHashtable.Add("NY", "New York");
myHashtable.Add("WY", "Wyoming");
foreach (string myKey in myHashtable.Keys)
{
Console.WriteLine("myKey = " + myKey);
}
foreach(string myValue in myHashtable.Values)
{
Console.WriteLine("myValue = " + myValue);
}
Console.WriteLine("Removing FL from myHashtable");
myHashtable.Remove("FL");
}
}
myKey = NY myKey = CA myKey = FL myKey = WY myKey = AL myValue = New York myValue = California myValue = Florida myValue = Wyoming myValue = Alabama Removing FL from myHashtable