демонстрация класса:
class item
{
public string name { get; set; }
public int level { get; set; }
}
демонстрация данных:
List<item> all = new List<item>();
all.Add(new item { name = "Red", level = 0 });
all.Add(new item { name = "Blue", level = 0 });
all.Add(new item { name = "S", level = 1 });
all.Add(new item { name = "M", level = 1 });
all.Add(new item { name = "L", level = 1 });
all.Add(new item { name = "Man", level = 2 });
all.Add(new item { name = "Woman", level = 2 });
Мне нужно сгруппировать по уровню и объединить все имя , это Декартово произведение em> вопрос. Результат такой:
Красный - S - Мужчина
Красный - S - Женщина
Красный - M - Мужчина
Красный - M - Женщина
Красный - L - Мужчина
Красный - L - Женщина
Синий - S - Мужчина
Синий - S - Женщина
Синий - M - Мужчина
Синий - M - Женщина
Синий - L - Мужчина
Синий - L - Женщина
Если уровень был исправлен, решение с кодом ниже:
foreach(var _0 in all.Where(m => m.level == 0))
{
foreach(var _1 in all.Where(m => m.level == 1))
{
foreach(var _2 in all.Where(m => m.level == 2))
{
Console.WriteLine(_0.name + "-" + _1.name + "-" + _2.name);
}
}
}
Но большой вопрос: уровень динамический, я просто кодирую так:
for(int i = 0; i < level; i++)
{
//some code ...
}
Поскольку мой настоящий проект - это Javascript, поэтому, пожалуйста, дайте мне простой код (не linq). Большое спасибо за помощь.