我有List
个Person
类对象。
List Persons = new List();
class Person
{
public int CatId{ get; set; }
public int SubcatId{ get; set; }
}
现在Person
类的实例可能具有相同的 CatId 或 SubcatId 。但是对于两个类同时使每个实例都是独特的,它们并不相同。例如:
Person1: {CatId = 1, SubcatId = 1}
Person2: {CatId = 1, SubcatId = 2}
Person3: {CatId = 2, SubcatId = 1}
Person4: {CatId = 2, SubcatId = 2}
现在我有另一个类MergedPerson
合并Person
个具有相同 CatId
class MergedPerson
{
public int CatId{ get; set; }
}
如何使用MergedPerson
创建MergedPersons
个对象列表:列出Linq
?
MergedPerson1: {CatId = 1}
MergedPerson2: {CatId = 2}
答案 0 :(得分:1)
使用GroupBy
:
var MergedPersons = Persons
.GroupBy(x => x.CatId)
.Select(x => new MergedPerson { CatId = x.Key })
.ToList();
如果您想根据多个媒体资源对人员进行分组,可以使用Composite Key
var MergedPersons = Persons
.GroupBy(x => new { x.CatId, x.SubcatId })
.Select(x => new MergedPerson { CatId = x.Key.CatId })
.ToList();