Я должен выяснить, как генерировать SKU для продукта с определенным количеством (x) атрибутов, и каждый атрибут имеет определенное количество (y) значений. Например:
Футболка имеет следующие атрибуты:
И значения для этих атрибутов:
- Цвет: красный, белый, синий
- Размер: S, M, L, XL
- Пол: M, F
- Рукав: короткий, длинный
Мне нужно создать SKU для каждой уникальной комбинации, например, SKU #: 1234 для Small, Red, Male w / короткие рукава, 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"}}
});
I ' Я хотел бы использовать наиболее эффективный подход, но я могу думать только о вложенных выражениях foreach для этого. Я мог бы использовать некоторую помощь с логикой c здесь.