#c# #list #combinations
#c# #Список #комбинации
Вопрос:
У меня есть список объектов:
List<classname> mylist=new List<classname>();
public class classname
{
public String test { set; get; }
public String name { set; get; }
public String value{ set; get; }
}
Мой список содержит эти значения:
test1, name1, value1
test1, name2, value2
test2, name1, value1
test2, name3, value3
test3, name4, value4
Мне нужно получить комбинации, в которых каждая комбинация будет иметь список значений, таких как
test1, name1, value1
test2, name1, value1
test3, name1, value3
Каждая комбинация должна содержать строку из test1
, test2
и test3
Комментарии:
1. Вопрос неясен. Пожалуйста, отформатируйте его и предоставьте реальный пример структуры данных для компиляции.. Сделает это намного проще для понимания
2. Вам действительно нужен первый элемент для каждого из этих значений «TestX»?
3. да, гилад, мне нужен первый элемент для значений testx
4. комбинация должна содержать test1, а также test2 и test3
5. да, в моем случае вывод должен быть списком из трех объектов
Ответ №1:
Похоже, вы хотите сгруппировать по classname.name , и в этом случае вы бы сделали это
void Main()
{
List<classname> mylist=new List<classname>()
{
new classname { test = "test1", name = "name1", value = "value1" },
new classname { test = "test1", name = "name2", value = "value2" },
new classname { test = "test2", name = "name1", value = "value1" },
new classname { test = "test2", name = "name1", value = "value3" },
new classname { test = "test2", name = "name3", value = "value3" },
new classname { test = "test3", name = "name4", value = "value4" }
};
var groups = mylist.GroupBy(x => x.name);
foreach(var group in groups)
{
// name property value
//Console.WriteLine(group.Key);
foreach(var row in group)
{
// unique rows for this "name" group
Console.WriteLine($"{row.test} {group.Key} {row.value}");
}
Console.WriteLine();
}
}
public class classname
{
public String test { set; get; }
public String name { set; get; }
public String value{ set; get; }
}
Вывод:
test1 name1 value1
test2 name1 value1
test2 name1 value3
test1 name2 value2
test2 name3 value3
test3 name4 value4