使用List作为名字

时间:2016-03-11 19:01:38

标签: c#

我的名字和其他区域出现错误,我不知道这是一个基本的逻辑错误还是我的概念。在我的PromptName()中,它似乎没有与我的Display(index,searchingName)一起撤回任何东西;

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Seven
{
class Seven
{
    static void Main(string[] args)
    {
        // IMPORTANT CODE REQUIREMENT: In the following list              declaration, 
        //  the order of the items in firstNames 
        //  cannot be "manually" changed.
        // ------------------------------------------------
        List<string> firstNames = { "Johnny", "Alice", "Cory",
                            "Steve", "Dennis" };
        // ------------------------------------------------

        int index;
        string searchedName = PromptName();
        while (searchedName.Equals("end"))
        {
            index = firstNames.BinarySearch(serchedName);
            Display(index, searchedName);
        }

        Console.Read();
    }

    private void Display(int index, string name)
    {
        Console.WriteLine();
        if (index >= 0)
        {
            Console.WriteLine("Yes, {0} is in our course.", searchedName);
        }
        else
        {
            Console.WriteLine("No, {0} is not in our course.", name);
        }
        Console.Write("");
    }

    private string PromptName()
    {
        Console.Write("To terminate the program, enter 'end' for the student name.");
        Console.Write("Enter the first name of the student to be searched in our course: ");
        return Console.ReadLine();
    }
 }
}

2 个答案:

答案 0 :(得分:2)

除非PromptName() 返回&#34;结束&#34;

,否则您的while循环不会执行

更改

while (searchedName.Equals("end"))

while (!searchedName.Equals("end"))

您还有一个问题,即您不会再次提示输入新名称。在调用Display()后立即在while循环结束时执行此操作。

这是使用调试器轻松解决的问题类型。如果您还没有学会如何在您的环境中使用它,我建议优先考虑它。您投入学习调试的时间很快就能收回成本。

<强>更新

我刚注意到您的列表未正确声明。它应该是

List<string> firstNames = new List<string>() { "Johnny", "Alice", "Cory",
                        "Steve", "Dennis" };

答案 1 :(得分:0)

您可能已经知道这一点,但在第25行有一个拼写错误:

第25行:index = firstNames.BinarySearch(serchedName);

应该搜索serchedName名称