Linjärsökning.
Hej,
jag är helt ny på programmering och C#, jag har en uppgift där man skapar en loggbok som som användaren ska kunna skriva inlägg i och sen kunna söka efter inläggen. Sökningen ska vara linjär. Jag har inte kunnat testköra programmet än eftersom det är en bugg under LinearSearch. Men förstår inte hur jag ska lösa buggen!? Programmet är inte klart på länga vägar så vissa Case är lummiga, men det är inte det jag behöver hjälp med (än).
Är det någon som förstår som kan hjälpa mig?
Tack på förhand! /Emilie
{ // Ny klass.
class MyTitel
{
string text;
string titel;
// METOD: konstruktor
public MyTitel(string titel)
{
this.titel = titel;
}
// Egenskap för titel
public string Titel
{
get
{
return titel;
}
set
{
titel = value;
}
}
class Program
{
// Linjärsökning.
static string LinearSearch(List<MyTitel> list, string key)
{
for (int i = 0; i < list.Count; i++)
{
if (list[i].Titel == key)
return i; <-----------( Mitt problem, röd linje under i) '' Cannot implicitly convert type 'int' to 'string' ''
}
return null;
}
}
static void Main(string[] args)
{
bool isRunning = true;
// Skapar lista för titel.
List<string> myTitel = new List<string>();
List<string> myText = new List<string>();
while (isRunning)
{
// Menyval.
Console.WriteLine("\n\t-----VÄLKOMMEN-----");
Console.WriteLine("\n\t[1]Skriv ett nytt inlägg.");
Console.WriteLine("\n\t[2]Sök bland inlägg.");
Console.WriteLine("\n\t[3]Skriv ut alla loggar.");
Console.WriteLine("\n\t[4]Avsluta programmet.");
// Menyval konverteras till string. TryParse för förhindra krasch.
int nr;
Int32.TryParse(Console.ReadLine(), out nr);
switch (nr)
{
case 1:
Console.WriteLine("\n\t Skriv en titel.");
myTitel.Add(Console.ReadLine());
Console.WriteLine("\n\t Skriv din text.");
myText.Add(Console.ReadLine());
break;
case 2:
// sök bland inlägg.
Console.WriteLine("\n\t Skriv in titel på det inlägg du söker.");
string str = Console.ReadLine();
break;
case 3:
// Skriv ut alla loggar
foreach (string item in myTitel)
{
Console.WriteLine(item);
}
foreach (string item in myText)
{
Console.WriteLine(item);
}
break;
case 4:
isRunning = false;
break;
}
Console.ReadLine();
}
}
}
}