C#如何继续搜索我列表中的项目,而不是在一次搜索后关闭应用程序

C#如何继续搜索我列表中的项目,而不是在一次搜索后关闭应用程序,c#,C#,谢谢你的帮助,我是一个全新的编程新手,我尝试过谷歌,但找不到答案 我正在寻找的是一种方法,让我可以继续搜索列表中的项目,而不必在一次搜索后关闭它。非常感谢你 我尝试过的代码是: static void Main(string[] args) { string appName = "Fruitsalad Jens"; string appVersion = "1.0.0"; string appAuthor = "Jens Jonassen

谢谢你的帮助,我是一个全新的编程新手,我尝试过谷歌,但找不到答案

我正在寻找的是一种方法,让我可以继续搜索列表中的项目,而不必在一次搜索后关闭它。非常感谢你

我尝试过的代码是:

static void Main(string[] args)
    {

        string appName = "Fruitsalad Jens";
        string appVersion = "1.0.0";
        string appAuthor = "Jens Jonassen";

        // Farge
        Console.ForegroundColor = ConsoleColor.Green;

        // Versjon
        Console.WriteLine("{0} Versjon {1} by {2}", appName, appVersion, appAuthor);

        // Tilbakestill Fargen
        Console.ResetColor();

        // Velkomst
        Console.WriteLine("Hello, who are you?");

        string navn = Console.ReadLine();

        Console.WriteLine("Welcome to fruit finder {0}! Which fruit do you need to find?", navn);

        {
            string sSearch;

            List<Frukter> listFrukter = new List<Frukter>();
            listFrukter.Add(new Frukter());
            listFrukter[0].Navn = "Orange";
            listFrukter[0].Pris = 32.5;

            listFrukter.Add(new Frukter());
            listFrukter[1].Navn = "Apple";
            listFrukter[1].Pris = 23;

            listFrukter.Add(new Frukter());
            listFrukter[2].Navn = "Grapes";
            listFrukter[2].Pris = 18.90;

            listFrukter.Add(new Frukter());
            listFrukter[3].Navn = "Mango";
            listFrukter[3].Pris = 48;

            sSearch = Console.ReadLine();

            for (int iCount = 0; iCount < listFrukter.Count; iCount++)

            {

                if (listFrukter[iCount].Navn.Equals(sSearch))
                {
                    Console.WriteLine("Found it!");
                    Console.WriteLine(listFrukter[iCount].getData());

                }

            }


            Console.ReadLine();
static void Main(字符串[]args)
{
字符串appName=“frutsalad Jens”;
字符串appVersion=“1.0.0”;
字符串appAuthor=“Jens Jonassen”;
//法基
Console.ForegroundColor=ConsoleColor.Green;
//维斯琼
WriteLine({0}Versjon{1}by{2}),appName,appVersion,appAuthor);
//蒂尔巴克斯特法根
Console.ResetColor();
//维尔康斯特
WriteLine(“你好,你是谁?”);
字符串navn=Console.ReadLine();
WriteLine(“欢迎使用水果查找程序{0}!您需要查找哪种水果?”,navn);
{
字符串搜索;
List listFrukter=新列表();
Add(new Frukter());
listFrukter[0].Navn=“橙色”;
listFrukter[0].Pris=32.5;
Add(new Frukter());
listFrukter[1].Navn=“苹果”;
listFrukter[1].Pris=23;
Add(new Frukter());
listFrukter[2].Navn=“Grapes”;
listFrukter[2].Pris=18.90;
Add(new Frukter());
listFrukter[3].Navn=“Mango”;
listFrukter[3].Pris=48;
sSearch=Console.ReadLine();
对于(int-iCount=0;iCount
将Console.Readline()移动到while循环中。找到项目后,从内部for循环中断

Console.WriteLine("Press ESC to stop");

while (!(Console.KeyAvailable && Console.ReadKey(true).Key == ConsoleKey.Escape))
{
       sSearch = Console.ReadLine();

       for(int iCount = 0; iCount < listFrukter.Count; iCount++)

           {

               if (listFrukter[iCount].Navn.Equals(sSearch))
                {
                   Console.WriteLine("Found it!");
                   Console.WriteLine(listFrukter[iCount].getData());
                   break;
                }

           }
}
Console.WriteLine(“按ESC键停止”);
while(!(Console.KeyAvailable&&Console.ReadKey(true.Key==ConsoleKey.Escape))
{
sSearch=Console.ReadLine();
对于(int-iCount=0;iCount
我想您正在寻找一个。此构造采用布尔表达式,并在表达式返回
true
时重复执行其体中的代码

例如,以下代码会将数字0到9打印到控制台:

inti=0;
而(i<10)
{
控制台写入线(i);
i=i+1;
}
小心循环,因为如果条件的计算结果永远不会为
false
,循环将永远继续。在本例中,如果我们删除
i=i+1;
,循环将永远不会终止,因为
i
将始终为0


在您的情况下,您可能只想使用
while(true)
,因为您想无限期地重复搜索。从读取用户输入到打印响应的所有内容都应该是while
正文的一部分。

添加
while
循环:当用户想要继续搜索时,请执行以下操作:

     ...
     // keep on looping (infinite loop)...
     while (true) {
        Console.WriteLine("Welcome to fruit finder {0}! Which fruit do you need to find? Q for quit", navn);

        sSearch = Console.ReadLine().Trim();

        // ... until user enters "q" for quit
        if (string.Equals(sSearch, "Q", StringComparison.OrdinalIgnoreCase))
            break;

        for (int iCount = 0; iCount < listFrukter.Count; iCount++)
        {

            if (listFrukter[iCount].Navn.Equals(sSearch))
            {
                Console.WriteLine("Found it!");
                Console.WriteLine(listFrukter[iCount].getData());
            }
        }

        Console.ReadLine();
    }
    ...
。。。
//继续循环(无限循环)。。。
while(true){
WriteLine(“欢迎使用水果查找程序{0}!您需要查找哪种水果?Q表示退出”,navn);
sSearch=Console.ReadLine().Trim();
//…直到用户输入“q”退出
if(string.Equals(sSearch,“Q”,StringComparison.OrdinalIgnoreCase))
打破
对于(int-iCount=0;iCount
编辑:相同的想法(循环)在不同的实施中(见Pol Vilarrasa下面的评论):

//如果用户想再次搜索,请多次循环
做{
WriteLine(“欢迎使用水果查找程序{0}!您需要查找哪种水果?”,navn);
sSearch=Console.ReadLine().Trim();
对于(int-iCount=0;iCount
我没有任何示例代码,但这是一个典型的编程练习示例

如果我理解正确,您希望在第一次搜索后继续搜索其他水果

您需要添加一个循环,以便在完成搜索后返回以再次检查输入,如下所示:

sSearch = Console.ReadLine();
while (sSearch != "exit")
{
        for (int iCount = 0; iCount < listFrukter.Count; iCount++)
        {
            if (listFrukter[iCount].Navn.Equals(sSearch))
            {
                Console.WriteLine("Found it!");
                Console.WriteLine(listFrukter[iCount].getData());
            }
        }

    sSearch = Console.ReadLine();
}
sSearch=Console.ReadLine();
while(搜索!=“退出”)
{
对于(int-iCount=0;iCount
您可能想看看“while循环”或“do-while循环”。它们循环(或重复)一段代码,直到满足特定条件。“while循环”将在执行任何操作之前检查条件。“do-while循环”将
sSearch = Console.ReadLine();
while (sSearch != "exit")
{
        for (int iCount = 0; iCount < listFrukter.Count; iCount++)
        {
            if (listFrukter[iCount].Navn.Equals(sSearch))
            {
                Console.WriteLine("Found it!");
                Console.WriteLine(listFrukter[iCount].getData());
            }
        }

    sSearch = Console.ReadLine();
}