Организовать работу(добавление, поиск) c набором данных о студентах(ФИО, курс) C#

Не могу реализовать вывод всей строки , где найдено заданное пользователем слово... Желательно без замудренных методов и тд


/*Данные из файла:
Фамилия: Фадеева | Имя: Алёна | Отчество: Михайловна | Курс: 2
Фамилия: Ларин | Имя: Виктор | Отчество: Захарович | Курс: 1
Фамилия: Горелова | Имя: Дарья | Отчество: Глебовна | Курс: 3
Фамилия: Лаптев | Имя: Владимир | Отчество: Матвеевич | Курс: 1
Фамилия: Королева | Имя: Софья | Отчество: Алексеевна | Курс: 2 */

struct User
    {
        public string name;
        public string surname;
        public string middleName;    
        public int course;

        public void DisplayInfo()
        {
            string data = File.ReadAllText(@"D:\proga.txt");
            string userName = ("\n" + $"Фамилия: {surname} | Имя: {name} | Отчество: {middleName} | Курс: {course}");

            File.AppendAllText(@"D:\proga.txt", userName);
            string data2 = File.ReadAllText(@"D:\proga.txt");
            Console.WriteLine(data2);
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            string data = File.ReadAllText(@"D:\proga.txt");
            Console.WriteLine(data);
            Console.WriteLine();

            Console.WriteLine("Хотите добавить пользователя(Enter or Escape)?");
            ConsoleKey agreement = Console.ReadKey().Key;
            switch (agreement)
            {
                case ConsoleKey.Enter:
                    User user;
                    Console.Write("Введите фамилию: ");
                    user.surname = Console.ReadLine();
                    Console.Write("Введите имя: ");
                    user.name = Console.ReadLine();
                    Console.Write("Введите отчество: ");
                    user.middleName = Console.ReadLine();
                    Console.Write("Введите курс: ");
                    user.course = int.Parse(Console.ReadLine());
                    Console.WriteLine();                   
                    user.DisplayInfo();
                    break;
                
                case ConsoleKey.Escape:
                    Console.WriteLine("Хотите кого-то найти?(Enter or Escape)");
                    ConsoleKey search = Console.ReadKey().Key;
                    switch(search)
                    {
                        case ConsoleKey.Enter:
                            Console.Write("Кого хотите найти?(имя,фамилия,отчество,курс): ");
                            
                            break;

                        case ConsoleKey.Escape:
                            Console.WriteLine("Bye bye");
                            Environment.Exit(0);
                            break;

                        default:
                            Console.WriteLine("Вы нажали не туда :(");
                            break;
                    }
                    break;
                
                default:
                    Console.WriteLine("Вы нажали не туда :(");
                    break;
            }
            Console.ReadKey();
            Console.Clear();
            Console.ReadKey();           
        } 

    }

Ответы (3 шт):

Автор решения: aepot

Это можно сделать с помощью File.ReadAllLines, разбивая файл на строки.

Поиск по вхождению.

Console.Write("Введите поисковый текст: ");
string text = Console.ReadLine();
string[] lines = File.ReadAllLines(@"D:\proga.txt");
foreach (string line in lines)
{
    if (line.IndexOf(text, StringComparison.CurrentCultureIgnoreCase) >= 0)
        Console.WriteLine(line);
}

А по поводу формата хранения данных, самый ближний к тому, что вы делаете - CSV, познакомьтесь с ним и с инструментами, которые легко с ним работают.

→ Ссылка
Автор решения: CooLe

Попробуй сделай сериализацию в JSON. И пихай весь список студентов в список (List). И структурирование данных будет (хоть какое то) и поиск облегчишь.

→ Ссылка
Автор решения: TheDesireToBelieve

Вообще реализовал поиск так:

Console.Write("Кого хотите найти?(имя,фамилия,отчество, курс): ");                           
string word = Console.ReadLine(); 
Console.WriteLine();
string[] searchText = File.ReadAllLines(@"D:\proga.txt");                           
                            
for (int i = 0; i < searchText.Length; i++)
{
    string str = "";
    str = searchText[i];
                                                                   
    string[] box = str.Split(' ');
    foreach (string w in box)
    {
       if (word == w)
       {
          Console.WriteLine(searchText[i]);         
       }              
    }
                                
}
→ Ссылка