-1

我有一个名为 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[]”。

请问我做错了什么?

4

2 回答 2

0

x[a] is a ColourString[], so p in your foreach should be a ColourString not a ColourString[].

于 2013-01-28T18:44:17.237 回答
0

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

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

于 2013-01-28T18:49:45.887 回答