排列例程中的错误

本文关键字:错误 例程 排列 | 更新日期: 2023-09-27 17:56:17

我有一个简单的对象类,叫做ColorString。

我正在尝试设置一个递归排列例程来处理我的类的锯齿数组。

    static ColourString[][] perm2(int a, ColourString[][] x)
    {
        ColourString[][] retval = new ColourString[0][];
        foreach (ColourString[] p in x[a])
        {
            foreach (ColourString[] p2 in perm2(a + 1, x))
            {
                // do some stuff here to compare the strings in the colourString[] objects
            }
         }
         return retval;
     }

我的代码给了我以下错误:

错误 1 无法将类型"Test.Form1.ColorString"转换为 'Test.Form1.ColorString[]'.

请问我做错了什么?

排列例程中的错误

x[a]是一个ColourString[],所以foreach中的p应该是ColourString而不是ColourString[]

其他评论已经确定了问题所在,但请允许我具体说明一下......

根据您的函数原型,x 是 ColorString[][]
的类型因此 x[a] 是 ColorString[]
的类型您的外部循环尝试迭代属于 ColorString[] 类型的可枚举对象 ColorString[] 类型的对象,这是不可能的。 x[a] 的元素是 ColorString,而不是 ColorString[]。