Итак, у меня есть текстовый файл, в котором я хотел бы выполнить поиск по номеру, и если он найден, то выводится номер сообщения, а если нет, то не найден.
В настоящее время я прочитал текстовый файл в строку и спросил пользователя, какой номер они хотели бы найти. Часть, на которой я застрял, — это код для линейного поиска строки. Я хочу найти строку, потому что другие файлы, которые я буду использовать, могут содержать слова.
Код Пока:
public static void search() // Search for values
{
Console.WriteLine("Enter 1 to search through days");
int operation = Convert.ToInt32(Console.ReadLine());
if (operation == 1)
{
String[] myArray = File.ReadAllLines("Data1/Day_1.txt");
Console.WriteLine("Enter number to search");
String myString = Console.ReadLine();
}
}
Я видел некоторый код для линейного поиска, но не уверен, как правильно применить его к моему примеру. Я понимаю, как это работает, но проблема заключается в том, чтобы получить код в правильном порядке. Не слишком хорош в программировании на С#. Любая помощь приветствуется. Спасибо
Общий код линейного поиска:
static int Search(string[] list, string elementSought)
{
bool found = false;
int max = list.Length - 1;
int currentElement = 0;
do
{
if (list[currentElement] == elementSought)
{
found = true;
}
else
{
currentElement = currentElement + 1;
}
} while (!(found == true || currentElement > max));
if (found == true)
{
return currentElement;
}
else
{
return -1;
}
}
Обновлять:
public static void search() // Search for values
{
Console.WriteLine("1=Day 2=Depth");
int operation = Convert.ToInt32(Console.ReadLine());
if (operation == 1)
{
String[] myArray = File.ReadAllLines("Data1/Day_1.txt");
}
else if (operation == 2)
{
String[] myArray = File.ReadAllLines("Data1/Months_1.txt");
}
Console.WriteLine("Enter number to search");
String myString = Console.ReadLine();
int i = 0;
int j = 0;
var regex = new Regex(myString);
foreach (string array in myArray)
{
if (regex.IsMatch(array))
{
i++;
}
else if (regex.IsMatch(array))
{
j++;
}
}
if (i > 0)
{
Console.WriteLine("Found match! - {1} Appeared {0} time(s)",i,myString);
}
else if(j == 0)
{
Console.WriteLine("No Match for {0} in Data", myString);
}
Console.ReadLine();
}
Как мне изменить его так, чтобы, если я выберу второй файл, он выбрал его как тот, который будет использоваться в качестве моего массива?