In this article [Show more]
How to Use Hashtable in C# with Example
The Hashtable class in C# is a non-generic collection that stores key-value pairs as objects. This structure allows quick lookups and management of data. While newer collections like Dictionary<TKey, TValue> are often preferred, Hashtable remains useful in certain scenarios. This article will guide you through using Hashtable in C#, with practical examples.
Key Features of Hashtable
- Key-Value Pairs: Stores keys and values as objects.
- Unique Keys: Keys must be unique within the collection.
- Null Keys/Values: Allows null keys and values.
- Thread Safety: Provides limited thread safety through SyncRoot.
Example: Creating and Using a Hashtable
Basic Operations
Here's how to create a Hashtable, add key-value pairs, and access data:
using System;
using System.Collections;
public class HashtableExample
{
public static void Main()
{
// Create a hashtable and add key-value pairs
Hashtable phoneBook = new Hashtable
{
{ "Alice", "+1-202-555-0112" },
{ "Bob", "+1-202-555-0158" },
{ "Charlie", "+1-202-555-0199" }
};
// Add a new key-value pair
phoneBook["Diana"] = "+1-202-555-0177";
// Access a value using the indexer syntax
Console.WriteLine($"Alice's number: {phoneBook["Alice"]}");
// Check if a key exists using ContainsKey
if (phoneBook.ContainsKey("Bob"))
{
Console.WriteLine($"Bob's number: {phoneBook["Bob"]}");
}
// Remove a key-value pair by key
phoneBook.Remove("Charlie");
// Iterate through all key-value pairs using a foreach loop
Console.WriteLine("\nRemaining contacts:");
foreach (DictionaryEntry entry in phoneBook)
{
Console.WriteLine($"{entry.Key}: {entry.Value}");
}
}
}
Best Practices for Using Hashtable
- Null Handling: Handle null keys/values gracefully to avoid errors.
- Thread Safety: Use SyncRoot or a synchronized wrapper if accessing from multiple threads.
- Type Safety: Ensure proper type casting to prevent runtime exceptions.
Common Methods
- Add: Adds a new key-value pair using Add(key, value).
- Remove: Removes a key-value pair based on the key.
- ContainsKey: Checks for the existence of a key.
- Clear: Removes all key-value pairs.
Conclusion
Hashtable in C# is a versatile collection for managing key-value pairs, especially in legacy or mixed-data scenarios. By understanding its features and following best practices, you can make the most of Hashtable in your projects.