Создание комбинаций sku product C# - PullRequest
1 голос
/ 24 февраля 2020

Я должен выяснить, как генерировать 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 здесь.

...