我们在C#中构建了一个工具,向用户询问一系列多项选择问题,然后根据他们的答案显示产品列表.
我们没有做任何复杂的逻辑,我们只有与特定答案相关的产品,如果选择了答案,那么该产品将被添加到结果列表中.
我们最终会得到我们获得所有产品或没有产品的情况,因此我们需要看一下更彻底的逻辑编码方式.
首先,我在C#中构建一个实用程序应用程序,以帮助我们验证该工具.我希望该实用程序执行的第一项任务是返回所有可能的答案组合.我陷入了困境.这是让我头疼的数学问题之一.这是问题的样子:
有人可以让我开始正确的方向,如何通过C#完成返回所有可能的答案组合的列表?谢谢.
您想要的操作称为笛卡尔积.例如,如果问题一和二的可能答案是{ a, b, c },{ d, e }那么笛卡尔积是{ {a, d}, {b, d}, {c, d}, {a, e }, {b, e}, {c, e} }.
我写了一篇关于计算任意多个序列的笛卡尔积的文章; 你可以在这里找到它:
http://blogs.msdn.com/b/ericlippert/archive/2010/06/28/computing-a-cartesian-product-with-linq.aspx
另请看这个StackOverflow问题: