0

我有这种情况:

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

属性总是按固定顺序排列,不是强制性的。产品的最终 SKU 是 basesku + 选定属性的后缀。

例如,带有 basesku 的产品XXX有 3 个带有后缀的属性A,BC.

该产品的可能组合是:

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 列表

4

3 回答 3

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();
于 2012-12-10T20:42:42.240 回答
0

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

于 2012-12-10T20:48:03.990 回答
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;
   }
}
于 2012-12-10T20:35:58.037 回答