我遇到这种情况:
属性始终处于固定顺序且不是强制性的。产品的最终SKU是basesku +所选属性'后缀。
例如,带有basesku XXX
的产品有3个属性,后缀为A
,B
和C
。
该产品的可能组合包括:
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列表
答案 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。