Как создать таблицу (матрицу или другой тип списка / класса) для каждого параметра с динамическим списком тегов.Может быть (x) количество опций, и каждая опция может иметь (y) количество тегов.
класс опций
public class Option
{
public Option()
{
Tags = new HashSet<Tag>();
}
public string Name { get; set; }
public ICollection<Tag> Tags { get; set; }
}
класс тегов
public class Tag
{
public string Value { get; set; }
}
Основной код
var option1 = new Option() { Name = "Option1" };
var option2 = new Option() { Name = "Option2" };
option1.Tags = new List<Tag>();
option2.Tags = new List<Tag>();
var tag1 = new Tag() { Value = "tag1" };
var tag2 = new Tag() { Value = "tag2" };
var tag3 = new Tag() { Value = "tag3" };
var tag4 = new Tag() { Value = "tag4" };
var tag5 = new Tag() { Value = "tag5" };
option1.Tags.Add(tag1);
option1.Tags.Add(tag2);
option2.Tags.Add(tag3);
option2.Tags.Add(tag4);
option2.Tags.Add(tag5);
Ожидаемый результат:
//Console Output
tag1 tag3
tag1 tag4
tag1 tag5
tag2 tag3
tag2 tag4
tag2 tag5
Код У меня естьпока что, но не совсем работает. (Использование GenFu для генерации данных)
private static void Main(string[] args)
{
List<List<Tag>> TagList = new List<List<Tag>>();
List<int> TagOrder = new List<int>();
List<Option> Options = A.ListOf<Option>(2);
foreach (Option option in Options)
{
option.Tags = A.ListOf<Tag>(2);
}
foreach (Option option in Options)
{
TagList.Add(option.Tags.ToList());
}
foreach (var item in TagList)
{
TagOrder.Add(item.Count);
}
int run = 0;
int optionrun = 0;
var runCount = TagOrder.Aggregate((x, y) => x * y);
for (int h = 0; h < runCount + 1; h++)
{
try
{
var word = Options[optionrun].Tags.ToList()[run].Value;
Console.WriteLine(word);
optionrun++;
}
catch (Exception)
{
optionrun = 0;
run++;
Console.WriteLine("");
}
}
Console.ReadLine();
static int RandomNumber(int min, int max)
{
Random random = new Random(); return random.Next(min, max);
}
}