Как вернуть искомое значение и отобразить его пользователю C#

#c# #arrays #string #list

#c# #массивы #строка #Список

Вопрос:

Я хочу выполнить поиск по определенному userinput, а затем найти его и вывести пользователю? и я, похоже, не могу просмотреть более старое письменное сообщение, которое может отображать только самый последний журнал регистрации.

 class Program
    {
        static void Main(string[] args)
        {


            List<string[]> logBook = new List<string[]> { };
            bool isRunning = true;

            switch (Choose)
            {
                case 1:
                    Console.WriteLine("Write a logg: ");
                    string[] logg = new string[2];
                    logg[0] = Console.ReadLine();
                    Console.WriteLine("Skriv ditt inlägg: ");
                    logg[1] = Console.ReadLine();
                    logBook.Add(logg);
                    break;
                case 2:
                    Console.WriteLine("Write search word: ");
                    string searchWord = Console.ReadLine();
                    bool find = false;
                    for (int i = 0; i < logBook.Count; i  )
                    {
                        if (logBook[i].Contains(searchWord))
                        {
                            Console.WriteLine(logBook[i]);
                            find = true;
                        }

                    }
                    if (!find)
                    {
                        Console.WriteLine("Couldnt find anything!");
                    }
                    break;
                default:
                    break;
                }
  

Комментарии:

1. logBook это список массивов строк, вы должны просмотреть каждый массив, чтобы найти заданное значение

2.«Как отлаживать небольшие программы«.

3. Ваш код не компилируется как есть. Choose не определено; вы не завершаете свой Main метод или свой Program класс…

4. как мне просмотреть каждый массив без. Содержит?

5. Это будет работать до тех пор, пока searchWord точно соответствует всей записи в массиве. Итак, если один из массивов является { "good mojo", "bad mojo" } , и searchWord является "good mojo" , это должно найти это и передать эхо "good mojo" на консоль. Однако, если вы ожидаете использовать "mojo" as searchWord , он ничего не найдет.

Ответ №1:

Это только оператор switch:

 switch (Choose)
                {
                    case 1:
                        Console.WriteLine("Write a logg: ");
                        string[] logg = new string[2];
                        logg[0] = Console.ReadLine();
                        Console.WriteLine("Skriv ditt inlägg: ");
                        logg[1] = Console.ReadLine();
                        logBook.Add(logg);
                        break;
                    case 2:
                        Console.WriteLine("Write search word: ");
                        string searchWord = Console.ReadLine();
                        bool find = false;
                        for (int i = 0; i < logBook.Count; i  )
                        {
                            for (int j = 0; j < 2; j  )
                            {
                                if (!find amp;amp; logBook[i][j].Contains(searchWord))
                                {
                                    Console.WriteLine(logBook[i][j]);
                                    find = true;
                                }
                            }
                        }
                        if (!find)
                        {
                            Console.WriteLine("Couldnt find anything!");
                        }
                        break;
                    default:
                        break;
                }
  

Должен быть внешний цикл, который запрашивает варианты (1 или 2), в противном случае ваш код выполняется только один раз.

Часть, которую вы пропустили, просматривала сам массив в списке.