计算SKU的可能组合

时间:2012-12-10 20:31:02

标签: c# .net combinations

我遇到这种情况:

  • 带有SKU的产品
  • 此产品具有带SKU后缀的属性(复选框)
  • (想象一个带插件的产品)

属性始终处于固定顺序且不是强制性的。产品的最终SKU是basesku +所选属性'后缀。

例如,带有basesku XXX的产品有3个属性,后缀为ABC

该产品的可能组合包括:

XXX-A
XXX-A-B
XXX-A-B-C
XXX-A-C
XXX-B
XXX-B-C
XXX-C

因为属性是固定的,所以永远不可能有XXX-C-B

计算这些SKU的最佳方法是什么?

编辑:我应该告诉这些属性是动态创建的。所以不可能有attA +" - " + attB。我需要一种方法来动态生成可能的SKU列表

3 个答案:

答案 0 :(得分:3)

使用StringBuilder

var sb = new StringBuilder("XXX");
if (skuACheckBox.Checked) {
    sb.Append("-A");
}
if (skuBCheckBox.Checked) {
    sb.Append("-B");
}
if (skuCCheckBox.Checked) {
    sb.Append("-C");
}
string skuWithSuffix = sb.ToString();

答案 1 :(得分:0)

我看到另一个答案是计数 对不起,如果我错误地阅读了这个问题。

Public String SKU { get; set; }

Public bool Aattr { get: set; }
Public bool Battr { get: set; }
Public bool Cattr { get: set; }

Public String SKUwSuffix 
{
   get
   {
      string sKUwSuffix = SKU; 
      if (Aattr) sKUwSuffix += "-A";
      if (Battr) sKUwSuffix += "-B";
      if (Cattr) sKUwSuffix += "-C";
      return sKUwSuffix;
   }
}

答案 2 :(得分:0)

我建议维护一个非重复的选定后缀属性集合,最后使用该集合连接sku。