Как выполнить поиск по текстовому файлу?

Делаю лабораторную по базам данных, C#. Нужно создать базу данных автосалона (реализовать методы записи, считывания и тому подобное).

Реализовалл весь необходимый функционал, кроме поиска (метод Search). Суть метода заключается в поиске элемента по номеру или же другим способом.

Пытался найти информацию про передачу массива как аргумента функции, но возникло исключение, у которого нет описания на MSDN.

Так как передать массив не получилось, я решил пойти другим способом - подключить директорию внутри метода и весь текст в файле считать в массив. Я создал, цикл в котором перебираю весь массив, и внутри цикла проверяется условие массив[i] == номер, при выполнении которого, должен делаться вывод в консоль. Но условие не срабаывает.

Метод поиска:

static void Search()
{
    string pathToFile = @ "D:\Laboratory(OOP)\2.5\main\input.txt";
    string[] readText = File.ReadAllLines(pathToFile);
    int s;
    Console.WriteLine("[0] - По номеру\n[1] - По найбільшій кількості машин\n [2] - По найменуванні");
    Console.Write("Виберіть спосіб пошуку: ");
    s = Convert.ToInt32(Console.ReadLine());
    switch (s)
    {
        case 0:
            int number;
            Console.WriteLine("Введіть номер: ");
            number = Convert.ToInt32(Console.ReadLine());
            string _num = number.ToString();

            for (int i = 0; i < readText.Length; i++)
            {
                if (readText[i] == _num)
                {
                    Console.WriteLine(readText[i]);
                }
            }
            Menu();
            break;
    }
}

Полный код:

using System;
using System.IO;
using System.Text;

namespace Data
{
    public class DataStream
    {
        static void Search()
        {
            string pathToFile = @"D:\Laboratory(OOP)\2.5\main\input.txt";
            string[] readText = File.ReadAllLines(pathToFile);
            int s;
            Console.WriteLine("[0] - По номеру\n[1] - По найбільшій кількості машин\n [2] - По найменуванні");
            Console.Write("Виберіть спосіб пошуку: ");
            s = Convert.ToInt32(Console.ReadLine());
            switch (s)
            {
                case 0:
                    int number;
                    Console.WriteLine("Введіть номер: ");
                    number = Convert.ToInt32(Console.ReadLine());
                    string _num = number.ToString();

                    for (int i = 0; i < readText.Length; i++)
                    {
                        if(readText[i] == _num)
                        {
                            Console.WriteLine(readText[i]);
                        }
                    }
                    Menu();
                    break;
            }
        }
        static void Readfile()
        {
            string pathToFile = @"D:\Laboratory(OOP)\2.5\main\input.txt";

            int num;
            Console.WriteLine("[0] - Прочитати з файла [1] - прочитати з консолі");
            Console.Write("Виберіть як ви хочете прочитати файл: ");
            num = Convert.ToInt32(Console.ReadLine());

            switch (num)
            {
                case 0:
                    Console.WriteLine("Зчитування файлу...");
                    File.OpenRead(pathToFile);
                    Menu();
                    System.Threading.Thread.Sleep(10000);
                    Console.Clear();
                    break;
                case 1:
                    Console.WriteLine("Відкриття файлу...");
                    using (StreamReader reader = new StreamReader(pathToFile))
                    {
                        string? line;
                        while ((line = reader.ReadLine()) != null)
                        {
                            Console.WriteLine(line);
                        }
                    }
                    break;
            }
            Menu();
        }

        public static void Entry()
        {
            string pathToFile = @"D:\Laboratory(OOP)\2.5\main\input.txt"; // Файл
            // БД
            string Name; 
            int price;
            int current;
            string set;
            int day, month, year; 
            // БД

            int n; // Розмір масиву
            string[] str_d; // Массив данних

            Console.Write("Введiтьк кiлькiсть автомобiлiв: ");
            n = Convert.ToInt32(Console.ReadLine());

            str_d = new string[n]; // Створення масиву

            StreamWriter str = new StreamWriter(pathToFile); // відкривання файлу для запису
            for (int i = 0; i < n; i++) // цикл
            {
                Console.WriteLine("#" + i + "-----------------");
                str.WriteLine("Номер " + i);
                Console.Write("Найменування: ");
                Name = Console.ReadLine();
                str_d[i] = Name;
                str.WriteLine("Найменування:" + str_d[i]);

                Console.Write("Цiна одиницi: ");
                price = Convert.ToInt32(Console.ReadLine());
                string _price = price.ToString();
                str_d[i] = _price;
                str.WriteLine("Цiна одиницi: " + str_d[i]);

                Console.Write("Кiлькiсть: ");
                current = Convert.ToInt32(Console.ReadLine());
                string _current = current.ToString();
                str_d[i] = _current;
                str.WriteLine("Кiлькiсть: " + str_d[i]);

                Console.Write("Комплектацiя: ");
                set = Console.ReadLine();
                str_d[i] = set;
                str.WriteLine("Комплектацiя: " + str_d[i]);

                Console.WriteLine("Дата останнього привозу: ");
                Console.Write("День: ");
                day = Convert.ToInt32(Console.ReadLine());
                Console.Write("Місяць(номер): ");
                month = Convert.ToInt32(Console.ReadLine());
                Console.Write("Рік: ");
                year = Convert.ToInt32(Console.ReadLine());
                string _day = day.ToString();
                string _month = month.ToString();
                string _year = year.ToString();
                str.Write("Дата останнього привозу: ");
                str_d[i] = _day;
                str.Write(str_d[i] + ".");
                str_d[i] = _month;
                str.Write(str_d[i] + ".");
                str_d[i] = _year;
                str.WriteLine(str_d[i]);
                str.WriteLine("-----------------------------------");
            }
            str.Close();
            Console.Clear();
            Menu();
        }
       public static void Menu() // початок програми
        {
           
            int _choose;
            Console.WriteLine("База данних автосалона");
            Console.WriteLine("[0] - Вихiд\n[1] - Створити новий список автомобiлiв\n[2] - Читати iнформацiю\n[3] - Пошук\n[4] - Сортування");
            _choose = Convert.ToInt32(Console.ReadLine());

                switch (_choose)
                {
                    case 0: return; break; // Вихыд
                    case 1: Entry(); break; // Заповнення масиву
                    case 2: Readfile(); break; // Читати файл
                    case 3: Search(); break; // Пошук
            }
            
        }


        public static void Main(string[] argrs) // точка входу
        {
            Menu(); // Виклик
        }
    }
}


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