编辑和删除列表中的索引c#

时间:2018-03-16 11:54:37

标签: c# list

所以我最近开始编程并在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);
                    }

我希望你们都明白我想在这里实现的目标。任何回应我都会非常感激。先感谢您!

0 个答案:

没有答案