如何实现笛卡尔积助手类

时间:2013-05-30 21:02:43

标签: c# cartesian-product

我正在尝试使用Felice Pollano的Cartesian产品助手类来实现解决方案,找到here

他调用他的类的例子使用文字字符串数组,如:

var cross = new CartesianProduct<string>(
           new string[] { "JUICY", "SWEET" }
           , new string[] { "GREEN", "YELLOW" }
           , new string[] { "APPLE", "BANANA", "MANGO" });

这可以按预期工作。

在我的实现中,我需要做一些更动态的事情,因为我需要从XML中提取值。我已经挂断了如何做到这一点。例如,这不起作用:

object[] array = new object[] {new string[] { "JUICY", "SWEET" } , 
new string[] { "GREEN", "YELLOW" }, 
new string[] { "APPLE", "BANANA", "MANGO" } };

var cross = new CartesianProduct<object>(array);

构造函数将输入数组作为单个param,这会导致错误。

有关如何以不同的方式调用此类以使其工作或更新帮助程序类以支持我需要执行的操作的任何建议?

1 个答案:

答案 0 :(得分:2)

构造函数接受string[][],而不是object[]作为对象的string[]

尽管如此构建数组只是一个小小的改变:

string[][] array = new string[][] 
{
    new string[] { "JUICY", "SWEET" }, 
    new string[] { "GREEN", "YELLOW" }, 
    new string[] { "APPLE", "BANANA", "MANGO" } 
};