Loggboken C#
Hej!
Jag skulle behöva hjälp med min uppgift, jag har gjort så jag kan spara flera trådar i min lista och och kan skriva ut dem men när jag ska gå in på sökningen så så blir det så att jag bara får fram det första inlägg som sparats men inte det andra
Ska visa ett exempel vad jag menar:
Titel: a
innehåll: apa
inlägg 1
Titel b
innehåll: banan
inlägg 2
båda sparas.
om jag söker efter a så hittas det men om jag skriver b så hittas den inte men den finns om jag skulle söka på innehållets namn.
fattar inte vad som är fel, har testat contains också men får bara system-string på skärmen.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace Loggboken
{
class Program
{
static void Main(string[] args)
{
bool running = true; //Här läggs en bool till för att se till att loopen stämmer hela vägen.
List<string[]> Loggbok = new List<string[]> { }; //På dessa två rader skapas strängar på olika sätt för olika tidpunkter i programmet.
string[] list = new string[1];
string Date = ""; //Här skapar jag en plats för att spara datumen som följer med inläggen.
while (running) //Loopen startar.
{
Console.WriteLine("\n\tVälkommen till loggboken"); //Menyn som loopas tills användaren avslutar programmet.
Console.WriteLine("\n\t [1] Skriv ett inlägg" + //Jag valde att använda mig av \n\t för att få menyn ut en bit från kanten av skärmen och
"\n\t [2] Skriv ut alla inlägg" + //för att slippa skriva en massa Console.WriteLine så la jag till additions tecknet efter.
"\n\t [3] Sök i loggboken" +
"\n\t [4] Radera alla inlägg" +
"\n\t [5] Avsluta");
Console.Write("\n\t Välj ett alternativ: ");
int Val; //Skapade en int för switch-loopen.
int.TryParse(Console.ReadLine(), out Val); //Här satte jag en TryParse för att förhindra att användaren skriver något annat än de rätta siffrorna.
switch (Val) //Switchen startar.
{
case 1:
list = new string[2];
Console.Write("Title: "); //Här får användaren först valet att välja en title för sitt inlägg
list[0] = Console.ReadLine();
Console.Write("Innehåll: "); //Sedan vad som ska finnas i titeln.
list[1] = Console.ReadLine();
Date = DateTime.Now.ToString("yyyy - MM - dd"); //Här kommer datumet fram när de är fördiga med inlägget.
Loggbok.Add(list); //Här sparas inlägget.
break;
case 2:
Console.WriteLine("Visar tidigare inlägg: "); //Case 2 tar fram alla inlägg som har skrivits med sin titel,innehåll och datum som de skrivits.
foreach (var item in Loggbok)
{
Console.WriteLine(Date);
foreach (var text in item)
{
Console.WriteLine(text);
}
}
break;
case 3:
Console.WriteLine("Söker bland inlägg: "); //På case 3 kan man söka efter ett specifikt inlägg med namnet på sin titel eller ett ord i innehållet.
string search = Console.ReadLine();
for (int i = 0; i <Loggbok.Count; i++)
{
string []storage = Loggbok[i];
if (storage[i] == search)
Console.WriteLine("Hittade detta inlägg: " + "\n\t" + Date + "" + //Här visas vad som hittades med datum,titel och innehållet.
"\n\t" + storage[0] + "" +
"\n\t" + storage[1] );
}
break;
case 4:
list[0] = ""; //Här tas alla inlägg bort om användaren väljer case 4.
list[1] = "";
Date = "";
break;
case 5:
Console.WriteLine("Tack för ditt besök välkommen åter");
Thread.Sleep(1000); //Avslutar programmet efter en viss tid.
running = false;
break;
default:
Console.WriteLine("Välj ett alternativ mellan 1-5"); //Texten som visas om användaren skriver något annat än vad programmet visar.
break;
}
}
}
}
}