把信息放在我的阵列上给了我“;System.String[]”;其中,作为我的数组的另一部分,给出了所需的信息.c#

本文关键字:信息 我的 数组 另一部 其中 一部分 阵列 String System | 更新日期: 2023-09-27 18:28:42

我的程序运行良好,除了一个问题"System.String[]"我是c#编程的新手,这是我在大学课程中的第一个主要任务。我问过我的一些朋友和老师(但都无济于事,因为他们只是说如果这与作业有关,他们就无能为力了)我不知道我在代码中哪里出了问题。基本上,名称输入在可以显示的列表中显示得很好,但数组的第二部分只显示了"System.String[]"。然而,我觉得它与下面的代码有问题,因为我一直在玩它,试图看看哪里出了问题,但却一无所获。

static void AddDetails()
    {
        string nameInput;
        string licensePlateInput;
        string parkingSlot;
        Console.WriteLine("Enter the guest's name");
        nameInput = Console.ReadLine();
        Console.WriteLine("enter the guest's license plate");
        licensePlateInput=Console.ReadLine();
        parkingSlot=Convert.ToString(licensePlate);
        int nextAvailableSlot = FindSlot("");
        if (nextAvailableSlot != -1)
        {
            name[nextAvailableSlot] = nameInput;
            licensePlate[nextAvailableSlot] = parkingSlot;
        }
        else
        {
            Console.WriteLine("No empty spots remain");
        }
    }

这是我的代码的一部分,允许用户输入所需的详细信息,然后将其存储起来。

static int FindSlot(string names)
    {
        int result = -1;
        for (int index = 0; index < name.Length;index ++ )
        {
            if (name[index] == names)
            {
                result = index;
                break;
            }
            else if(names == "" && name[index] == null)
            {
                result = index;
                break;
            }
        }
        return result;

这是我觉得应该补充的第一部分的延伸,因为我认为它可能会有所帮助。

 static void ListCars()
    {
       for(int index= 0; index < name.Length; index ++)
       {
           if(name [index] != "" && name[index] != null)
           Console.WriteLine(" name {0} car is parked in {1}", name[index], licensePlate[index]);
       }
    }

这段代码是的输出(我相信你们很多人都知道)

把信息放在我的阵列上给了我“;System.String[]”;其中,作为我的数组的另一部分,给出了所需的信息.c#

我会尝试一下,尽管我不确定我是否完全理解这个问题。我认为是这句话:

parkingSlot = Convert.ToString(licensePlate);

正如您所发现的,这样做的结果是System.String[],这不是您想要的。您已经通过拨打下一行的FindSlot获得了下一个可用的插槽。我认为,如果我读对了代码,那么你真正想做的是将车牌存储在licensePlate阵列中,所以只需使用用户输入的值即可,该值存储在licensePlateInput:中

// Remove this line, as it servers no discernible purpose
//parkingSlot=Convert.ToString(licensePlate);
int nextAvailableSlot = FindSlot("");
if (nextAvailableSlot != -1)
{
    name[nextAvailableSlot] = nameInput;
    // Use the value the user gave for the license plate
    licensePlate[nextAvailableSlot] = licensePlateInput;
}