C#,代码正在编译,但搜索功能不起作用

C#,代码正在编译,但搜索功能不起作用,c#,if-statement,search,C#,If Statement,Search,这是我代码中的一个简单部分,无论我做什么都不起作用。我已经问过很多人了,所以我想这是我最后的希望了。我唯一的问题是在案例3中,当用户可以搜索一篇旧文章时。发生的情况是,程序每次只返回else语句。为了让您更容易理解,我将跳过所有代码: ps.搜索必须是线性的 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace Loggbo

这是我代码中的一个简单部分,无论我做什么都不起作用。我已经问过很多人了,所以我想这是我最后的希望了。我唯一的问题是在案例3中,当用户可以搜索一篇旧文章时。发生的情况是,程序每次只返回else语句。为了让您更容易理解,我将跳过所有代码: ps.搜索必须是线性的

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace Loggbok
{
    class MainClass
    {
        public static void Main(string[] args)
        {
            DateTime tiden = DateTime.UtcNow;//Skriver ut tiden vid varje inlägg
            bool running = true;//Ger ett booleskt värde till variabeln running för att kunna skapa en loop
            List<string[]> loggbok = new List<string[]>();//Här skapas listan som innehåller arrayen

            while (running)//Här skapas loopen
            {
            Console.WriteLine("\n************************************");
            Console.WriteLine("\nVälkommen till loggboken!");
            Console.WriteLine("\n************************************");
            Console.WriteLine("\n[1] Skriv nytt inlägg i loggboken");
            Console.WriteLine("[2] Skriv ut alla loggar");
            Console.WriteLine("[3] Sök inlägg i loggboken");
            Console.WriteLine("[4] Radera innehåll i loggboken");
            Console.WriteLine("[5] Avsluta loggboken");
            Console.WriteLine("\n************************************");
            Console.Write("\nVälj: ");

            int option;//Int eftersom valet ska vara ett heltal
            string[] logg = new string[2];//Här deklareras arrayen

            try
            {
                option = Int32.Parse(Console.ReadLine());//testar så att inmatningen är av typen Int

            }
            catch
            {
                Console.WriteLine("Fel, du får bara skriva in nummer");//Felmeddelande om inmatningen är en bokstav
                continue;
            }

            switch (option)
            {
                case 1:
                    Console.WriteLine("\n************************************");
                    Console.WriteLine(tiden);
                    Console.WriteLine("Ange en Titel:");
                    logg[0] = Console.ReadLine();//Här sparas titeln
                    Console.Clear();
                    Console.WriteLine("\n************************************");
                    Console.WriteLine("Skriv inlägg:");
                    logg[1] = String.Format("{0}{1}{2}", Console.ReadLine(), Environment.NewLine, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));//Här sparas inlägget samt datum och tid, detta är möjligt tack vare formattering 
                    loggbok.Add(logg);
                    break;


                case 2:
                    foreach (string[] item in loggbok)//För att skriva ut alla items i loggboken
                    {
                        Console.WriteLine("\n--------------------------------------\n ");
                        Console.WriteLine(item[0]);//För att skriva ut titel
                        Console.WriteLine(item[1]);//För att skriva ut inlägg
                        Console.WriteLine("\n--------------------------------------\n ");
                    }
                    Console.ReadLine();

                    break;





                case 3:

                    Console.WriteLine("\n************************************");
                    Console.WriteLine("Skriv in ett ord du vill söka efter i loggboken:");
                    string nyckelord = Console.ReadLine();//Här sparas inmatningen av nyckelordet

                    for (int i = 0; i < logg.Length; i++)
                    {

                        if (logg[i] == nyckelord)
                        {
                            Console.WriteLine(logg[i]);
                        }
                        else
                        {
                            Console.WriteLine("finns inte");
                        }

                    }





                        break;






                case 4:

                    Console.WriteLine("\n************************************");
                    Console.WriteLine("Skriv titeln på det inlägg du vill ta bort:");
                    string title = Console.ReadLine();//Sparar titeln på inlägget användaren vill radera

                    for (int x = 0; x < loggbok.Count; x++) //Loopa igenom varje titel
                    {
                        if (String.Equals(loggbok[x][0], title, StringComparison.OrdinalIgnoreCase)) //Icke skiftlägeskänslig matchning av titeln.
                        {
                            loggbok.RemoveAt(x); //Matchning funnen.
                        }
                        else
                        {
                            Console.WriteLine("Titeln finns inte, återgår till huvudmenyn");
                        }


                    }
                    break; //Avsluta loopen.


                case 5:

                    running = false;//Avslutar loopen och därmed programmet
                    break;


                default:

                    Console.WriteLine("Nu blev det fel, välj mellan [1] [2] [3] [4] [5]");//Felmeddelande om valet är någon annan siffra än de som menyn innehåller
                    break;









            }
        }
    }
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用System.IO;
名称空间Loggbok
{
类主类
{
公共静态void Main(字符串[]args)
{
DateTime tiden=DateTime.UtcNow;//Skriver ut tiden vid varje inlägg
bool running=true;//gerett booleskt värde直到variabeln在kunna skapa循环中运行
List loggbok=new List();//Här skapas listan som innehåller arrayen
(运行时)//Här skapas loopen
{
Console.WriteLine(“\n*******************************************”);
Console.WriteLine(“\nVälkommen till loggboken!”);
Console.WriteLine(“\n*******************************************”);
Console.WriteLine(“\n[1]Skriv nyt inlägg i loggboken”);
控制台写入线(“[2]Skriv ut alla loggar”);
Console.WriteLine(“[3]Sök inlägg i loggboken”);
Console.WriteLine(“[4]Radera innehåll i loggboken”);
控制台写入线(“[5]Avsluta loggboken”);
Console.WriteLine(“\n*******************************************”);
Console.Write(“\nVälj:”);
int option;//int eftersom代客泊车ska vara ett heltal
string[]logg=新字符串[2];//Här deklareras arrayen
尝试
{
option=Int32.Parse(Console.ReadLine());//testar såatt inmatningeär av typen Int
}
抓住
{
Console.WriteLine(“在努默尔的费尔·巴拉·斯克里瓦”);//在博克斯塔夫的特宁根岛上的费尔梅德德兰德
继续;
}
开关(选件)
{
案例1:
Console.WriteLine(“\n*******************************************”);
控制台写入线(tiden);
控制台写入线(“Ange en Titel:”);
logg[0]=Console.ReadLine();//Här sparas titeln
Console.Clear();
Console.WriteLine(“\n*******************************************”);
Console.WriteLine(“Skriv inlägg:”);
logg[1]=String.Format(“{0}{1}{2}”、Console.ReadLine()、Environment.NewLine、DateTime.Now.ToString(“yyyy-MM-dd HH:MM:ss”);//Här sparas inlägget samt datum och tid、dettaär möjligt tack vare格式化
loggbok.Add(logg);
打破
案例2:
foreach(loggbok中的字符串[]项)//För att skriva ut alla items i loggboken
{
Console.WriteLine(“\n--------------------------------------------\n”);
Console.WriteLine(项[0]);//För att skriva ut titel
Console.WriteLine(项目[1]);//För att skriva ut inlägg
Console.WriteLine(“\n--------------------------------------------\n”);
}
Console.ReadLine();
打破
案例3:
Console.WriteLine(“\n*******************************************”);
Console.WriteLine(“Skriv in ett ord du vill söka efter i loggboken:”);
string nyckelord=Console.ReadLine();//Här sparas inmtningen av nyckelordet
对于(int i=0;i

}我想你找错地方了。您正在通过
logg
进行搜索,而您可能想通过
loggbok
进行搜索,请尝试此代码。它将在标题和消息中搜索您请求的字符串

case 3:
    Console.WriteLine("\n************************************");
    Console.WriteLine("Skriv in ett ord du vill söka efter i loggboken:");
    string nyckelord = Console.ReadLine();//Här sparas inmatningen av nyckelordet

    bool found = false;
    foreach (string[] item in loggbok)
    {
        if (item.Any(l => l.Contains(nyckelord)))
        {
            found = true;
            Console.WriteLine(item[0]);
            Console.WriteLine(item[1]);
            Console.WriteLine();
        }
    }

    if (!found)
    {
        Console.WriteLine("finns inte");
    }

    break;
请在文本常量和注释中使用英语,这将有助于理解您的代码

此外,最好创建类或结构来存储帖子数据(标题和消息),而不是