所以我最近开始编程并在c#中学习一门课程。 在此特定任务中,您应该创建一个程序,将用户输入的数据存储到列表中,然后将其打印出来等等。
但我坚持两件具体的事情。我希望能够访问索引并对其进行编辑,并且还能够通过在列表中选择正确的索引来删除用户输入。
static void DisplayMeny()
{
DateTime dateTime = DateTime.Now;
//Meny text
Console.WriteLine("\t" + dateTime);
Console.WriteLine("\n \t Loggboken!");
Console.WriteLine("\t [1] Skriv nytt inlägg i loggboken");
Console.WriteLine("\t [2] Skriv ut alla loggar");
Console.WriteLine("\t [3] Sök inlägg i loggboken");
Console.WriteLine("\t [4] Redigera inlägg i loggboken");
Console.WriteLine("\t [5] Ta bort inlägg i loggboken");
Console.WriteLine("\t [6] Avsluta");
Console.Write("\t Välj:");
}
static void Main(string[] args)
{
List<string[]> loggBoken = new List<string[]> { };
string[] inlägg = new string[3]; // Vektor med 3 index
DateTime dateTime = DateTime.Now;
bool kör = true;
while (kör)
{
DisplayMeny();
int val;
int.TryParse(Console.ReadLine(), out val); //tryparse funktion för menyvalet
//Switch funktion för meny val
switch (val)
{
case 1:
Console.Clear();
inlägg = new string[3]; //skappar ett nytt inlägg i loggboken
//Får skriva in titel till array
Console.Write("Skriv titel: ");
inlägg[0] = Console.ReadLine();
Console.Clear();
//Skriver inlägget till array
Console.Write("Skriv in inlägg: ");
inlägg[1] = Console.ReadLine();
Console.Clear();
//lägger till datum och tid i loggen adderar det till arreyen
var tidFörInlägg = Convert.ToString(dateTime);
inlägg[2] = tidFörInlägg;
Console.Clear();
//adderar allt information samlad till listan
loggBoken.Add(inlägg);
Console.Clear();
break;
case 2:
Console.Clear();
Console.WriteLine("\n\tDet du har sparat i loggboken är: ");
foreach (string[] item in loggBoken) //for each som skriver ut alla titlar,loggtexter och tid och datum som är sparat i "loggBoken"
{
Console.WriteLine("\t Titel: {0}" + "\n \t {1}" + "\n \t {2}"
,item[0],item[1],item[2] );
}
break;
case 3: //Sökfunktion
Console.Clear();
Console.Write("Sök efter titel på loggar: ");
string sök = Console.ReadLine();
foreach (string[] text in loggBoken) // foreach som söker efter arrayen i loggboken
{
if (text[0].Contains(sök)) //Om arrayen hittas i Console.Readline så skrivs den ut. Använder en if sats för det
{
Console.WriteLine("\n" + text[0] + "\n" + text[1] + "\n" + text[2]);
}
else //Om "sök" inte hittar något
{
Console.WriteLine("Sökning misslyckades");
}
}
break;
case 4:
var grejer = loggBoken[0];
string search = Console.ReadLine();
for (int i = 0; i < loggBoken.Count; i++)
{
Console.WriteLine("\n Index: {0} Titel: {1}", i, loggBoken[i][0]);
}
Console.Write("\n Skriv in siffran på loggen du vill ändra på: ");
if (grejer.Contains(search))
{
Console.WriteLine(search);
}
break;
case 5:
int input;
int.TryParse(Console.ReadLine(), out input);
for (int i = 0; i < loggBoken.Count; i++)
{
Console.WriteLine("Index: {0} Titel: {1}", i, loggBoken[i][0]);
}
Console.Write("\n Skriv in siffran på loggen du vill radera: ");
loggBoken.Remove(loggBoken[input]);
break;
case 6:
//Avslutar programmet
Console.Clear();
Console.WriteLine("Avslutar loggboken!");
kör = false; //kör blir false och programmet stängs ner
break;
default:
Console.WriteLine("Välj riktigt menyval!"); // Om du skriver in något annat en menyvalen
break;
}
Console.ReadLine();
}
}
这就是我到目前为止所做的,但我需要帮助的部分是这些。 如果我有3个索引存储,它将始终只删除索引[0]。
case 5:
//Remove loggs from index
int input;
int.TryParse(Console.ReadLine(), out input);
for (int i = 0; i < loggBoken.Count; i++)
{
Console.WriteLine("Index: {0} Titel: {1}", i, loggBoken[i][0]);
}
Console.Write("\n Skriv in siffran på loggen du vill radera: ");
loggBoken.Remove(loggBoken[input]);
break;
我甚至不知道我是否接近这个。但同样的事情在这里。用户应该能够输入索引,然后才能编辑之前写的文本。
case 4:
// Edit list
var grejer = loggBoken[0];
string search = Console.ReadLine();
for (int i = 0; i < loggBoken.Count; i++)
{
Console.WriteLine("\n Index: {0} Titel: {1}", i, loggBoken[i][0]);
}
Console.Write("\n Skriv in siffran på loggen du vill ändra på: ");
if (grejer.Contains(search))
{
Console.WriteLine(search);
}
我希望你们都明白我想在这里实现的目标。任何回应我都会非常感激。先感谢您!