C# создайте программу, которая выполняет поиск в списке и выводит, была ли строка найдена или нет

#c# #list

Вопрос:

Мой приведенный ниже код выводит «имя пользователя не найдено» для каждого индекса в name списке, однако я хочу, чтобы оно печаталось только один раз, если оно не находит имя пользователя во всем списке (без использования LINQ).

В чем проблема?

 using System;
using System.Collections.Generic;

namespace exercise_74
{
    class Program
    {
        public static void Main(string[] args)
        {
            List<string> name = new List<string>();
            while (true)
            {
                string input = Console.ReadLine();
                if (input == "")
                {
                    break;
                }
                name.Add(input);
            }
            Console.WriteLine("who are u looking for ");
            string username = Console.ReadLine();
            int a = 0;
            while (a < name.Count)
            {
                if (name[a] == username)
                {
                    Console.WriteLine(username   " was found");

                }
                else
                {
                    Console.WriteLine(username   " was not found");
                }
                a  ;

            }
        }
    }
}
 

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

1. Вам не нужен этот else пункт. Если вы прошли весь цикл и не нашли имя пользователя, вы можете напечатать, что оно не было найдено.


Ответ №1:

 var found = false;

while(a < name.Count)
        {
            if(name[a] == username )
            {
                Console.WriteLine(username   " was found");
                found = true;
                break;
                  
            }             
                  
            a  ;
               
        }

    if(!found)
         Console.WriteLine(username   " was not found");
 

Писать по телефону, так что, возможно, это не идеальное образование.