#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"
assearchWord
, он ничего не найдет.
Ответ №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), в противном случае ваш код выполняется только один раз.
Часть, которую вы пропустили, просматривала сам массив в списке.