比较字符串数组元素的内容与名称

时间:2013-09-27 20:43:46

标签: c# arrays

我有一个名为“PopulateNameArray”的方法和另一个名为“FindStudentPosition”的方法。

在FindStudentPosition(string name,string [] array)中,我有

int intLocation = -1;

在循环中,我必须将当前字符串数组元素的内容与学生姓名进行比较。 如果名称匹配,则将元素编号分配给intLocation 一旦找到,就会脱离循环

我该怎么做?由于FindStudentPosition中的参数与存储名称的数组不同,因此如何让它在循环中检查该数组?


    public static void PopulateNameArray(string[] names)
    {
        Console.WriteLine("*Names Of The Students*");
        Console.WriteLine("--------------------- \n");

        int intNumber = 5;
        for (int i = 0; i < intNumber; i++)
        {
            Console.Write("Please Enter A Name: ");
            names[i] = Console.ReadLine();
        }

    }        

    private static int FindStudentPosition(string name, string[] array)
    {

        int intLocation = -1;

        for ()
        {


        break;
        }

        return intLocation;

    }

2 个答案:

答案 0 :(得分:1)

已经使用Array.IndexOf方法为您实现了这一步:

int index = Array.IndexOf(array, name);

或者使用数组实现IList<T>的事实,并使用IList<T>.IndexOf

// IndexOf is implemented explicitly
IList<string> list = array;
int index = list.IndexOf(name);

答案 1 :(得分:0)

尝试使用

private static int FindStudentPosition(string name, string[] array)
{
    int intLocation = -1;
    //loops through all array elements
    for (int i = 0; i < array.Length; i++; )
    {
        //checks if array element matches name
        if (array[i] == name)
        {
            //displays message and stores position in intLocation
            Console.WriteLine("Matches Name " + i);
            intLocation = i;
            break; // break when match found
        }    
    }
    return intLocation;
}