我有一个名为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 []'。
我做错了什么?
答案 0 :(得分:0)
x[a]
是ColourString[]
,因此p
中的foreach
应该是ColourString
而不是ColourString[]
。
答案 1 :(得分:0)
其他评论已经确定了问题,但请允许我具体说明......
根据你的函数原型,x是类型ColourString [] []
因此x [a]是ColourString []的类型
你的外部循环试图迭代属于ColourString []类型的可枚举的ColourString []类型的对象,这是不可能的。 x [a]的元素是ColourString,而不是ColourString []。