Я уверен, что что-то пропустил, и это действительно что-то легкое, но я на самом деле не могу понять, что я пропустил. Это с bool Bubblesort = False; строка 17. Проблема в случае 6, где я предполагаю отсортировать список, а при отладке он работает нормально и все. но я не понимаю, почему я работаю, если у меня ошибка в строке 17 и вроде 176, где значение меняется на true;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
namespace Logg
{
class Program
{
static void Main(string[] args)
{
Header();
List<log> Logbook = new List<log>();
bool Bubblesort = false;
bool IsRunning = true;
while (IsRunning)
{
Menu();
int userInput;
int.TryParse(Console.ReadLine(), out userInput);
switch (userInput)
{
case 1://Ny post
{
Console.Clear();
bool done = false;
while (!done)
{
Console.WriteLine("Write a title for your post: ");
string title = Console.ReadLine();
Console.WriteLine("Write your message: ");
string msg = Console.ReadLine();
Console.WriteLine("\tIs this information correct? y/n: ");
string input = Console.ReadLine();
if (input == "y")
{
Logbook.Add(new log
{
Title = title,
Msg = msg,
Date = DateTime.Now
});
done = true;
}
else
{
Console.WriteLine("\tWrite your post again please!");
}
}
Console.WriteLine($"\tYour log has been saved {DateTime.Now}\n");
break;
}
case 2://Visa inlägg
{
Console.Clear();
if (Logbook.Count > 0)
{
for (var index = 0; index < Logbook.Count; index++)
{
Console.Write($"\t{index}:");
Console.WriteLine("\tTitle: " + Logbook[index].Title);
Console.WriteLine("\t\tMessage: " + Logbook[index].Msg);
Console.WriteLine("\t\tDate: " + Logbook[index].Date);
Console.WriteLine("\t-----------------------------------------------------------\n");
}
}
else
{
Console.WriteLine("\t There is no logs saved!");
}
break;
}
case 3://Search
{
Console.Clear();
Console.WriteLine("\tWrite your title: ");
string keyword = Console.ReadLine();
bool found = false;
for (int index = 0; index < Logbook.Count; index++)
{
//kör ToLower so att användaren inte beöver tänka på case sensitivity när de söker
if (Logbook[index].Title.ToLower() == keyword.ToLower())
{
//Om denna kod block kör så får bool variabeln searchHit true som värdet efter som att man har fått en sökträff
found = true;
//skriver ut index för loggan i samma rad som rubriken fast nästa utmatning dvs rubriken kommer skrivas med tab ifrån index
Console.Write($"\t{index}:");
//skriver ut index för Rubriken för loggan
Console.WriteLine("\tRubrik: " + Logbook[index].Title);
//skriver ut index för texten för loggan
Console.WriteLine("\t\tMeddelande: " + Logbook[index].Msg);
//skriver ut index för datumet för loggan
Console.WriteLine("\t\tDatum: " + Logbook[index].Date);
//skriver ut denna för att seperera alla loggar från varandra.
Console.WriteLine("\t-----------------------------------------------------------\n");
}
}
if (!found)
{
Console.WriteLine($" {keyword} Didnt match.");
}
break;
}
case 4://Delete
{
Console.Clear();
Logbook = new List<log>();
Console.WriteLine($"Your log has been deleted {DateTime.Now}\n");
break;
}
case 5://Edit
{
Console.Clear();
for (var index = 0; index < Logbook.Count; index++)
{
Console.Write($"\t{index}:");
Console.WriteLine("\tTitle: " + Logbook[index].Title);
Console.WriteLine("\t\tMessage: " + Logbook[index].Msg);
Console.WriteLine("\t\tDate: " + Logbook[index].Date);
Console.WriteLine("\t-----------------------------------------------------------\n");
}
if (Logbook.Count > 0)
{
Console.WriteLine("Which log do you want to edit? Enter a lognumber: ");
string input = Console.ReadLine();
if (!int.TryParse(input, out int LogbookIndex))
{
Console.WriteLine("You must enter a indexnumber!");
}
else
{
Console.WriteLine($"\t{LogbookIndex}:");
Console.WriteLine("\tTitle: " + Logbook[LogbookIndex].Title);
Console.WriteLine("\tMessage: " + Logbook[LogbookIndex].Msg);
Console.WriteLine("\tDatum: " + Logbook[LogbookIndex].Date);
Console.Write("\tTitle: ");
var title = Console.ReadLine();
Console.Write("Message: ");
var msg = Console.ReadLine();
Logbook[LogbookIndex].Title = title;
Logbook[LogbookIndex].Msg = msg;
Logbook[LogbookIndex].Date = DateTime.Now;
Console.WriteLine("\t Your changes has been saved!");
}
}
break;
}
case 6://Sort
{
Console.Clear();
if (Logbook.Count > 0)
{
for (int i = 0; i < Logbook.Count - 1; i++)
{
for (int index = 0; index < Logbook.Count - 1 - i; index++)
{
int sort = Logbook[index].Title.CompareTo(Logbook[index + 1].Title);
if (sort > 0)
{
log sorted = Logbook[index];
Logbook[index] = Logbook[index + 1];
Logbook[index + 1] = sorted;
}
}
}
Bubblesort = true;
}
break;
}
case 7://exit
{
IsRunning = false;
Thread.Sleep(10000);
break;
}
}
}
}
static void Header()
{
Console.WriteLine("\t\t\t\t\t\t╔══════════════════════════╗");
Console.WriteLine("\t\t\t\t\t\t Welcome to your logbook!");
Console.WriteLine("\t\t\t\t\t\t╚══════════════════════════╝");
}
static void Menu()
{
Console.WriteLine("\n\tChoose an option of your choice");
Console.WriteLine("\t--------------------------");
Console.WriteLine("\n\t[1] Write a new post");
Console.WriteLine("\t[2] Show logs");
Console.WriteLine("\t[3] Search in logs");
Console.WriteLine("\t[4] Delete logs");
Console.WriteLine("\t[5] Edit logs");
Console.WriteLine("\t[6] Sort list");
Console.WriteLine("\t[7] Exit");
Console.Write("\tEnter your choice: ");
}
class log
{
public string Title;
public string Msg;
public DateTime Date;
}
}
}