繁体   English   中英

C# 如何搜索 function 以在控制台 window 中查找并显示标题和帖子?

[英]C# How do I get search function to find and display both title and post in console window?

我是 C# 的新手,我很难理解我在这段代码中做错了什么(案例 3)? 我对代码进行了一些更改,但现在它找不到帖子,只有标题。 至少它只显示标题。 我非常感谢我能得到的任何帮助,因为我已经为此工作了好几天,这真的让我发疯。

         List<String[]> minBlogg = new List<String[]>();

         //Deklarerar en bool som är true, blir den false, kommer while loop nedan brytas
         bool isRunning = true;

         /*1.Vill bara att Välkommen ska skrivas ut en gång och sätter den därför utanför loop
           2.n för ny rad, t för tabb*/
         Console.WriteLine("\n\tWelcome! ");

         //Deklarerar While. SÅ LÄNGE bool är true kommer while loop fortsätta.
         while (isRunning)
         { 

           /*1.n för ny rad, t för tabb
             2.Texten nedan skrivs ut som menyval*/
             Console.WriteLine("\n\tMake a choice 1-5: ");
             Console.WriteLine("\n\t[1]Create a new post");
             Console.WriteLine("\t[2]Show saved posts");
             Console.WriteLine("\t[3]Search for a post");
             Console.WriteLine("\t[4]Delete all posts");
             Console.WriteLine("\t[5]End program");

           /*1.Deklarerar en int för menyval
             2.Deklarerar en if, för att TryParse ska exekveras om användare skriver annat än 1-5
             3.TryParse returnerar bool true om TryParse lyckas.*/
             int menyVal;
             Int32.TryParse(Console.ReadLine(), out menyVal);

             //Deklarerar en switch för menyVal.
             switch (menyVal)
             {
                 case 1:
                     /*1.Skapar en case 1: start på första kodblocket i switchen
                       2.Initiering av strängvektor med 3 element, platser för: titel, inlägg, datum / tid.
                       3.Deklarerar strängvektorn efter whileloop för att jag vill att användare ska kunna spara flera inlägg,utan att det gamla inlägget skrivs över. Array loopas.
                       4.Skriver ut instruktion till användare.
                       5.Sparar titel i index 0 (första elementet)
                       6.Endast till för att göra texten mer lättöverskådlig
                       6.1.t för tabb n för ny rad*/
                     String[] Inlägg = new String[3];
                     Console.Write("\tEnter a title for your post: ");
                     Inlägg[0] = Console.ReadLine();
                     Console.WriteLine("\n\t-------------------\n\t");

                     /*1.Skriver ut instruktion till användare
                       1.1.Skriver ut instruktion till användare
                       2.Sparar inlägget i index 1 (andra elementet)*/
                     Console.WriteLine("\tWrite a post and press enter to save: ");

                     Inlägg[1] = Console.ReadLine();

                     //1.Sparar datum/tid i index 2 (tredje elementet)
                     Inlägg[2] = DateTime.Now.ToString();

                     /*1.Sparar titel,inlägg,tid i minBlogg med Addmetoden
                       2.Endast till för att göra texten mer lättöverskådlig
                       2.1.Skriver ut information till användaren
                       3.break; Slut på detta kodblock*/
                     minBlogg.Add(Inlägg);
                     Console.WriteLine("\n\t-------------------\n\t");
                     Console.WriteLine("Your post is now saved!");
                     break;

                 case 2:
                     /*1.case 2: start på andra kodblocket i switchen
                       2.Skriver ut information till användaren.
                       3.Console.WriteLine(----); Gör det mer överskådligt att läsa inläggen.
                        Nedan är dina skrivna inlägg
                          ----------------------
                         Datum/Tid: Titel: Inlägg
                       4.Foreach loopar igenom alla sparade inlägg i minBlogg*/
                     Console.WriteLine("\n Your posts: \n");
                     Console.WriteLine("\n\t-------------------\n\t");
                     foreach (string[] dittInlägg in minBlogg)

                         /*1.Skriver ut alla arrays: Datum/Tid: Titel: Inlägg: Lagt array 2 först eftersom jag vill ha ut datum och klockslag först.
                           2.break; Avslutar detta kodblock */
                         Console.WriteLine("\n Puplicerat: " + dittInlägg[2] + " \n Titel - " + dittInlägg[0] + " \n Inlägg - " + dittInlägg[1] + "\n");

                     break;

                 case 3:

                
                     //Ber användaren att göra en sökning.
                     Console.WriteLine("Search on title: \n");
                     //Skapar en ny sträng variabel som blir sökningen som matas in av användaren.
                     string sökord = Console.ReadLine();
                     //skapar ytterligare en bool för att göra det enklare för programmet att söka i listan efter det inmatade sökordet.
                     bool sökning = false;
                     //For loopen hjälper oss att bläddra genom varje element.

                     for (int i = 0; i < minBlogg.Count; i++)
                     {   // Använder mig utav en jämförelseoperator.
                         // Skapar en extra for loop för att loopa min inre array och göra det möjligt att hitta inlägg i alla positioner.
                         for (int j = 0; j < minBlogg[i].Length; j++)
                         {
                             if (minBlogg[i][j].ToUpper() == sökord.ToUpper())
                             {
                                 // Matchar sökordet och listan så får användaren följande meddelande utskrivet på skärmen.
                                 Console.WriteLine("We found this: " + minBlogg[i][0], minBlogg[i][1]);
                                 Console.WriteLine("\nMake a new choice in the menu:");
                                 Console.WriteLine("\n" + "_______________________________________" + "\n\t");
                                 sökning = true;

                             }
                             
                         }

                     }
                     

                     //Om sökordet inte hittas skrivs följande ut i konsollfönster.
                     //break slut på kodblock i kodblock
                     if (!sökning)
                     {
                         Console.WriteLine("\nWe couldn´t find your post, please try again. " + "\n");
                         break;
                     }
                     //slut på hela kodblocket
                     break;

我已尝试运行您的代码,它按预期工作。 我们需要添加几个帖子并尝试使用标题进行搜索。 它正在显示搜索记录。 如果我尝试提供无效的搜索数据,它会显示为“我们找不到帖子”。

给定代码的示例输出

看起来问题出在下面的这一行;

Console.WriteLine("We found this: " + minBlogg[i][0], minBlogg[i][1]);

您正在将标题( minBlogg[i][0] )添加到值中,但将帖子( minBlogg[i][1] )作为参数传递。 Console.WriteLine重载使用复合格式化功能,需要格式化值才能将给定参数包含在 output 中。 您可以在此处阅读有关Console.WriteLine的更多信息,也可以在此处阅读有关复合格式的信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM