C# 如何在对象列表中获取组合?
我有一个对象列表:C# 如何在对象列表中获取组合?,c#,list,combinations,C#,List,Combinations,我有一个对象列表: 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, value
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
test2, name1, value1
test3, name1, value3
每个组合都应该包含来自
test1
、test2
和test3
的一行。看起来您希望按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; }
}
这个问题还不清楚。请格式化它,并提供一个真实的编译数据结构示例。。这将使您更容易理解您是否真的想要这些“testX”值的第一项?是的gilad我需要testX值的第一项组合应包含test1以及test2和Test3是的out必须是一个包含三个对象的列表
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