Search In File - C# Programming Exercise

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 search within the file.

The program should follow these steps:

• Read the content of the file and store it in an ArrayList.
• Ask the user for a word or sentence and display all the lines containing that word or sentence within the file.
• After displaying the results, the program should prompt the user to enter another word or sentence and repeat the process until the user enters an empty string.

This exercise will help you practice reading files, using ArrayList to store and manage data, and user interaction for performing searches within a text file in C#.

 Category

Dynamic Memory Management

 Exercise

Search In File

 Objective

Create a program that reads a text file, saves its content to an ArrayList, and asks the user to enter sentences to search within the file.

The program should ask the user to enter a word or sentence and display all the lines that contain the word or sentence. It should then prompt the user to enter another word or sentence and repeat the process until the user enters an empty string.

 Write Your C# Exercise

// Import necessary namespaces
using System;  // For basic input/output operations
using System.Collections;  // For using ArrayList
using System.IO;  // For file reading operations

class Program
{
    // Main method to execute the program
    static void Main(string[] args)
    {
        // ArrayList to store the lines from the file
        ArrayList lines = new ArrayList();

        // Specify the file path (change the path as needed)
        string filePath = "textfile.txt";  // Path to the text file

        // Check if the file exists before attempting to read it
        if (File.Exists(filePath))
        {
            // Read all lines from the file and store them in the ArrayList
            string[] fileLines = File.ReadAllLines(filePath);  // Read all lines from the file

            // Add each line from the file into the ArrayList
            foreach (string line in fileLines)
            {
                lines.Add(line);  // Store each line in the ArrayList
            }

            Console.WriteLine("File loaded successfully.\n");
        }
        else
        {
            Console.WriteLine("File not found. Please make sure the file exists at the specified path.");
            return;  // Exit the program if the file is not found
        }

        // Variable to store the user's search input
        string searchTerm = "";

        // Repeat asking for a search term until the user enters an empty string
        do
        {
            // Prompt the user to enter a word or sentence to search for
            Console.Write("Enter a word or sentence to search for (or press Enter to quit): ");
            searchTerm = Console.ReadLine();  // Get the user's input

            // If the input is not an empty string, search for the term
            if (!string.IsNullOrEmpty(searchTerm))
            {
                bool found = false;  // Flag to check if any lines are found

                // Loop through all the lines in the ArrayList
                foreach (string line in lines)
                {
                    // Check if the current line contains the search term (case-insensitive search)
                    if (line.IndexOf(searchTerm, StringComparison.OrdinalIgnoreCase) >= 0)
                    {
                        // If the search term is found, display the line
                        Console.WriteLine(line);
                        found = true;  // Mark that at least one match was found
                    }
                }

                // If no matching lines were found, notify the user
                if (!found)
                {
                    Console.WriteLine("No matches found for your search.");
                }
            }

        } while (!string.IsNullOrEmpty(searchTerm));  // Continue until the user enters an empty string

        // Inform the user that the program is ending
        Console.WriteLine("Exiting the program...");
    }
}

 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#.

  •  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...

  •  Queue Collections

    In this exercise, you need to create a string queue using the Queue class that already exists in the DotNet platform. The Queue class is an implementation of t...

  •  Queue Stack Reverse Polish Notation

    In this exercise, you need to create a program that reads a Reverse Polish Notation (RPN) expression from a text file, such as: 3 4 6 5 - + * 6 + (Result 21). In...

  •  ArrayList

    In this exercise, you need to create a string list using the ArrayList class that already exists in the .NET platform. The ArrayList class allows storing items...

  •  ArrayList duplicate a text file

    In this exercise, you need to create a program that reads from a text file and stores it to another text file by reversing the order of the lines. This exercise will ...