我必须弄清楚如何为具有一定数量 (x) 属性的产品生成 SKU,并且每个属性都有一定数量 (y) 的值。例如:
一件 T 恤具有以下属性:
- 颜色
- 尺寸
- 性别
- 袖子
这些属性的值是:
- 颜色:红色,白色,蓝色
- 尺码:S、M、L、XL
- 性别:男,女
- 袖子:短,长
我需要为每个独特的组合创建一个 SKU,例如 SKU #: 1234 代表小号、红色、男式短袖,SKU #: 2345 代表小号、红色、男式、长袖。
我的课:
public class Sku
{
public int Id { get; set; }
public int ProductId { get; set; }
public string Name { get; set; }
public List<SkuDetail> SkuDetails { get; set; };
}
public class SkuDetail
{
public int Id { get; set; }
public int SkuId { get; set; }
public string Name { get; set; }
}
演示数据:
var skus = new List<Sku>();
skus.Add(new Sku
{
Name = "Size",
SkuDetails = new List<SkuDetail>
{
new SkuDetail {Name = "S"}, new SkuDetail {Name = "M"},
new SkuDetail {Name = "L"}, new SkuDetail {Name = "XL"}, new SkuDetail {Name = "XXL"}
}
});
skus.Add(new Sku
{
Name = "Color",
SkuDetails = new List<SkuDetail>
{
new SkuDetail {Name = "Red"}, new SkuDetail {Name = "White"},
new SkuDetail {Name = "Black"}
}
});
skus.Add(new Sku
{
Name = "Style",
SkuDetails = new List<SkuDetail>
{new SkuDetail {Name = "Modern"}, new SkuDetail {Name = "classic"}}
});
我想使用最有效的方法,但我只能想到嵌套的 foreach 语句。我可以在这里使用一些逻辑帮助。