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

问题描述

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

我正在寻找的是一种让我继续在我的列表中搜索项目而不会在仅一次搜索后关闭的​​方法。非常感谢!

我试过的代码是:

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();

标签: c#

解决方案


添加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();
    }
    ...

编辑:不同实现中的相同想法(循环)(请参阅下面的 Pol Vilarrasa 评论):

     // loop once and more if user wants to search again
     do {
        Console.WriteLine("Welcome to fruit finder {0}! Which fruit do you need to find?", navn);

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

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

        Console.WriteLine("Another search Y/ N?");

        sSearch = Console.ReadLine().Trim();
    }
    while (string.Equals(sSearch, "Y", StringComparison.OrdinalIgnoreCase));
    ...

推荐阅读