将数组传递给方法

时间:2017-01-14 11:15:25

标签: c# arrays

即使所有变量都是数组,我似乎也会收到错误,说明无法从字符串转换为字符串[]变量。

class Program
{

    private static int[] testKey = { 10, 12, 15, 18, 2, 1, 200 };
    private static string[] testVar1 = { "hello", "albert", "france", "john", "version", "zebra" };
    private static string[] testVar2 = { "helllllllo", "jordan", "land", "Hobart", "Hogwarts", "hamburger", "Code" };

    static void Main(string[] args)
    {
        for (int currentLineCount = 0; currentLineCount < 233; currentLineCount++)
        {
            OrderAZ(testKey[currentLineCount], testVar1[currentLineCount], testVar2[currentLineCount]);
        }
        //Argument 3: cannot convert from 'string' to 'string[]'
        //Argument 2: cannot convert from 'string' to 'string[]'
        //Argument 1: cannot convert from 'int' to 'int[]'
    }

    public static void OrderAZ(int[] sortKey, string[] sortVariableTwo, string[] sortVariableOne)
    {
       //sort method stub
    }
}

2 个答案:

答案 0 :(得分:1)

SELECT table2.columnname, table2.columnname from table1, table2 where table1.id = table2.id testKey的数组,但inttestKey[currentLineCount]int方法需要OrderAZ,而不是int[](其他参数也是如此)。您需要传递一个数组,或者更改int方法的签名以接受OrderAZ(很难在不知道您的代码应该做什么的情况下判断)。

答案 1 :(得分:1)

如果要将字符串作为数组发送,可能需要使用字符串方法将其转换为字符串数组,如string.split(),字符串不是字符串数组,因为int不是int的数组,直到你以某种方式将它们转换为它。

在这种情况下,您发送数组的数据并且字符串数组的一个实际上是一个字符串,因此您的方法必须接收一个字符串,但如果您想发送整个数组,则删除整个括号部分在通话中,例如:

OrderAZ(testKey, testVar1, ...);

然后你可以保持你的方法不变。祝你好运!