我有一个与组合有关的问题。
我实际上正在开发一个电子商务网站,并且我有一个允许客户创建产品变体的功能。
例如:黑裤 34W 30L,黑裤 38W 32L,白裤 34W 30l。这些被定义为产品变体。
假设我的裤子有 3 个选项,分别是颜色、腰围和长度。
我现在有 3 个列表。
ListA = {"black", "white", "red"} //For the color
ListB = {30,32,34,36,38} //For the waist
ListC ={28,30,32,34} //For the length
我的问题是如何列出所有可能的组合?
我想要的结果应该是 {{black,30,28},{black,30,30},{black,30,32},{white,34 ,30}}
PS 棘手的部分是我不知道客户会为这个产品分配多少选项。选项的计数可能只有 1,这是最简单的;可能超过3...
问题解决了
因为我们不知道我们会有多少选择。因此,我们不知道要使用多少个 for 循环。换句话说,它变成了一个典型的笛卡尔积。
有关更多信息,您可以从这两个链接中阅读。 http://www.interact-sw.co.uk/iangblog/2010/07/28/linq-cartesian-1 http://blogs.msdn.com/b/ericlippert/archive/2010/06/28/computing -a-cartesian-product-with-linq.aspx
谢谢你的帮助!