C#  

Count frequency of words using Dictionary

Step 1: Design Page – WordFrequency.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="WordFrequency.aspx.cs" Inherits="WordFrequency" %>

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Count Word Frequency using Dictionary - Real Time Example</title>
    <style>
        body {
            font-family: Arial;
            background-color: #f2f5fc;
            margin: 50px;
        }
        .container {
            width: 550px;
            margin: auto;
            background: #fff;
            border-radius: 10px;
            box-shadow: 0 0 10px #ccc;
            padding: 25px;
        }
        h2 {
            text-align: center;
            color: #1A2A80;
        }
        .form-control {
            width: 100%;
            height: 100px;
            padding: 10px;
            margin-top: 10px;
            resize: none;
        }
        .btn {
            background-color: #7A85C1;
            color: white;
            border: none;
            padding: 10px;
            border-radius: 5px;
            cursor: pointer;
            width: 100%;
            margin-top: 15px;
        }
        .btn:hover {
            background-color: #5b68a1;
        }
        .result {
            margin-top: 20px;
            font-weight: bold;
            color: #333;
            white-space: pre-line;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
        <div class="container">
            <h2>Count Word Frequency</h2>

            <asp:Label ID="Label1" runat="server" Text="Enter a sentence:"></asp:Label><br />
            <asp:TextBox ID="txtInput" runat="server" CssClass="form-control" TextMode="MultiLine" 
                         placeholder="Example: welcome to c sharp webforms welcome to coding"></asp:TextBox>

            <asp:Button ID="btnCount" runat="server" Text="Count Word Frequency" CssClass="btn" OnClick="btnCount_Click" />

            <asp:Label ID="lblResult" runat="server" CssClass="result"></asp:Label>
        </div>
    </form>
</body>
</html>

Step 2: Backend Logic – WordFrequency.aspx.cs

using System;
using System.Collections.Generic;

public partial class WordFrequency : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
    }

    protected void btnCount_Click(object sender, EventArgs e)
    {
        lblResult.Text = "";
        string input = txtInput.Text.Trim();

        if (string.IsNullOrEmpty(input))
        {
            lblResult.Text = "Please enter a sentence.";
            lblResult.ForeColor = System.Drawing.Color.Red;
            return;
        }

        // Convert to lowercase and split by spaces
        string[] words = input.ToLower().Split(' ');

        // Create dictionary to store word counts
        Dictionary<string, int> wordCount = new Dictionary<string, int>();

        // Count frequency
        foreach (string word in words)
        {
            if (wordCount.ContainsKey(word))
                wordCount[word]++;
            else
                wordCount[word] = 1;
        }

        // Display result
        string result = "Word Frequency:\n\n";
        foreach (KeyValuePair<string, int> kvp in wordCount)
        {
            result += kvp.Key + " → " + kvp.Value + "\n";
        }

        lblResult.Text = result;
        lblResult.ForeColor = System.Drawing.Color.Green;
    }
}

Real-Time Example Output

Input

welcome to c sharp webforms welcome to coding

Output

Word Frequency:

welcome → 2
to → 2
c → 1
sharp → 1
webforms → 1
coding → 1

Explanation

StepDescription
1User enters a sentence in the textbox.
2The program converts it to lowercase to ensure case-insensitive counting.
3The sentence is split into words using Split(' ').
4A Dictionary<string, int> is used to store and count each word.
5Words already present in the dictionary have their count incremented.
6The frequency of each word is displayed in the label.

Algorithm

1. Read sentence from user.
2. Convert sentence to lowercase.
3. Split into words by space.
4. Create an empty dictionary (wordCount).
5. For each word:
     If word exists in dictionary → increment count.
     Else → add word with count 1.
6. Display all words with their frequency.

Sample Test Cases

InputOutput
“hello hello world”hello → 2, world → 1
“I love coding coding”i → 1, love → 1, coding → 2
“This is a test this is test”this → 2, is → 2, a → 1, test → 2

Key Concepts Used

  • Dictionary<TKey, TValue> → Stores word and its count.

  • ContainsKey() → Checks if a word already exists.

  • foreach loop → Iterates through dictionary pairs.

  • Split(' ') → Splits words by space.

  • ToLower() → Makes counting case-insensitive.