排列例程中的错误

时间:2013-01-28 18:27:22

标签: c# winforms

我有一个名为ColourString的简单对象。

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

    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.ColourString'转换为   'Test.Form1.ColourString []'。

我做错了什么?

2 个答案:

答案 0 :(得分:0)

x[a]ColourString[],因此p中的foreach应该是ColourString而不是ColourString[]

答案 1 :(得分:0)

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

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