数组关联问题

时间:2012-11-01 09:14:36

标签: c# arrays

我正在尝试创建一个应用程序,提示用户输入5个名称,然后显示每个名称并允许用户输入该特定名称的分数。因此,如果在第一个数组中,index [0]的值是一个字符串“Bob”,那么在另一个数组中,得分index [0]应该是bob的得分。

我很难理解如何将nameArray []传递给PopulateScore()方法,以便它可以显示用户输入相应分数的名称。

我还必须按名称搜索数组并返回分数。

感谢您的帮助。

public class InitArraya
{
    public static string[] arrayName = new string[5];
    public static int[] arrayScore = new int[5];

    public static void PopulateNameArray()
    {
        // Prompt user for names and assign values to the elements of the array
        for (int intCounter = 1; intCounter < arrayName.Length; intCounter++)
        {
            Console.Write("Enter name {0}: ", intCounter);
            arrayName[intCounter] = Console.ReadLine();
        }
    }

    public static void PopulateScoreArray(string[] array)
    {    
        // Prompt user for names and assign values to the elements of the array
        for (int intCounter = 1; intCounter < 5; intCounter++)
        {
            Console.Write("Enter score for {0}: ", arrayName[0]);
            arrayScore[intCounter] = Convert.ToInt32(Console.ReadLine());
        }
    }

    public static void Main( string[] args )
    {
        Console.WriteLine("Enter 5 names:"); // headings

        PopulateNameArray();
        PopulateScoreArray(arrayName);

        Console.ReadLine();
    }
}

3 个答案:

答案 0 :(得分:1)

制作包含名称和分数的对象数组,这将使您的解决方案更有用和可读。

public class NameScore{
   public string Name { get; set; }
   public int Score { get; set; }
}

public class InitArraya{
    public NameScore[] arrayScore = new NameScore[5]; 
...

答案 1 :(得分:1)

public static void PopulateScoreArray(string[] array)
{

    // Prompt user for names and assign values to the elements of the array
    for (int intCounter = 0; intCounter < array.Length; intCounter++)
    {
        Console.Write("Enter score for {0}: ", array[intCounter]);
        arrayScore[intCounter] = Convert.ToInt32(Console.ReadLine());

    }
}

假设arrayName中总有5个名称。否则应进行额外检查。

哦,并在PopulateNameArray中以0开始intCounter。

答案 2 :(得分:0)

in

public static void PopulateScoreArray(string[] array)

更改

 Console.Write("Enter score for {0}: ", arrayName[0]);

Console.Write("Enter score for {0}: ", array[intCounter]);

使用输入数组。同样在( - )中将计数器的开始更改为0

for (int intCounter = 0; intCounter < 5; intCounter++)