Hast Table - Dictionary - C# Programming Exercise

In this exercise, you need to create a dictionary using a hash table. The purpose of this exercise is to practice the implementation of an efficient data structure to store key-value pairs.

A hash table is a data structure that associates keys with values, allowing fast lookups, insertions, and deletions. In this exercise, you will need to implement a dictionary that stores words as keys and their respective definitions as values.

This exercise will help you understand how a hash table works in C#, its basic implementation, and how to handle collisions. You will need to manage data insertion as well as searching for definitions using the keys provided by the user.

Such structures are crucial for applications that require fast access to data, such as in search engines and information storage.

 Category

Dynamic Memory Management

 Exercise

Hast Table - Dictionary

 Objective

Submit your dictionary here using a hash table.

 Write Your C# Exercise

// Importing necessary namespaces for handling collections
using System;  // Basic namespace for console input/output and other fundamental operations
using System.Collections;  // To use Hashtable, a collection type for key-value pairs

class Program
{
    // Creating a Hashtable to store key-value pairs
    static Hashtable dictionary = new Hashtable();  // Hashtable for storing dictionary entries with keys and values

    // Method to add a word and its meaning to the dictionary
    static void AddWord(string word, string meaning)
    {
        // Check if the word already exists in the dictionary
        if (!dictionary.ContainsKey(word))  // If the word is not already in the dictionary
        {
            dictionary.Add(word, meaning);  // Add the word and its meaning to the dictionary
            Console.WriteLine($"Added '{word}' to the dictionary.");  // Inform the user that the word was added
        }
        else
        {
            Console.WriteLine($"'{word}' already exists in the dictionary.");  // If the word is already present, inform the user
        }
    }

    // Method to search for a word in the dictionary
    static void SearchWord(string word)
    {
        // Check if the word exists in the dictionary
        if (dictionary.ContainsKey(word))  // If the word is found in the dictionary
        {
            // Retrieve and display the meaning of the word
            Console.WriteLine($"{word}: {dictionary[word]}");  // Display the meaning of the word
        }
        else
        {
            Console.WriteLine($"'{word}' not found in the dictionary.");  // If the word doesn't exist, inform the user
        }
    }

    // Main program method to interact with the user and manage the dictionary
    static void Main(string[] args)
    {
        // Add some words to the dictionary
        AddWord("Apple", "A round fruit with red or green skin and a whitish interior.");
        AddWord("Banana", "A long, curved fruit with a yellow skin.");
        AddWord("Computer", "An electronic device for storing and processing data.");

        // Ask the user to input a word to search
        Console.Write("Enter a word to search in the dictionary: ");
        string wordToSearch = Console.ReadLine();  // Read the user's input for the word to search

        // Search and display the meaning of the entered word
        SearchWord(wordToSearch);  // Call the SearchWord method to find and display the meaning

        // Optionally, display the entire dictionary (all words and their meanings)
        Console.WriteLine("\nFull Dictionary:");
        foreach (DictionaryEntry entry in dictionary)  // Iterate over all entries in the dictionary
        {
            Console.WriteLine($"{entry.Key}: {entry.Value}");  // Display each word and its meaning
        }
    }
}

 Share this C# exercise

 More C# Programming Exercises of Dynamic Memory Management

Explore our set of C# programming exercises! Specifically designed for beginners, these exercises will help you develop a solid understanding of the basics of C#. From variables and data types to control structures and simple functions, each exercise is crafted to challenge you incrementally as you build confidence in coding in C#.

  •  Parenthesis

    In this exercise, you need to implement a function to check if a sequence of open and closed parentheses is balanced. In other words, the function should check if every open...

  •  Mix and sort files

    In this exercise, you need to create a program that reads the contents of two different files, merges them, and sorts them alphabetically. The program should be able to take...

  •  ArrayList of Points

    In this exercise, you need to create a structure named "Point3D" to represent a point in 3D space with X, Y, and Z coordinates. The structure should allow storing and manipu...

  •  Search in file

    In this exercise, you need to create a program that reads the contents of a text file, saves the content into an ArrayList, and prompts the user to enter sentences to...

  •  Implementing a queue using array

    In this exercise, you need to implement a queue in C#. A queue is a data structure that follows the FIFO (First In, First Out) principle, meaning the first ele...

  •  Implementing a stack using array

    In this exercise, you need to implement a stack in C#. A stack is a data structure that follows the LIFO (Last In, First Out) principle, meaning the last eleme...