我有一个完整的对象列表“人”。
我需要一个简短的名单,其中只包括每个团队的第一个人,所以某种形式的分组和每种情况下的第一项
如何将完整列表转换为短列表(每组第一个项目和teamNumber)?
List<Person> list = new List<Person>()
{
new Person(){TeamNumber = 1, Name = "Peter"},
new Person(){TeamNumber = 1, Name = "Klaus"},
new Person(){TeamNumber = 1, Name = "Maria"},
new Person(){TeamNumber = 1, Name = "Gerda"},
new Person(){TeamNumber = 2, Name = "Ralf"},
new Person(){TeamNumber = 2, Name = "Oskar"},
new Person(){TeamNumber = 2, Name = "Anna"},
new Person(){TeamNumber = 3, Name = "Hannah"},
new Person(){TeamNumber = 3, Name = "Susi"},
new Person(){TeamNumber = 4, Name = "Ida"}
};
我喜欢得到一个简短的列表,如:(始终为每个团队编号的第一个人)
- 团队编号= 1,姓名=“Peter”
- 团队编号= 2,姓名=“Ralf”
- 团队编号= 3,姓名=“Hannah”
- 团队编号= 4,姓名=“Ida”
班级成员:
public class Person
{
public int TeamNumber { get; set; }
public string Name { get; set; }
}
2条答案
按热度按时间icomxhvb1#
yzxexxkh2#
我会这么说:
首先,您需要
GroupBy
TeamNumber,以便(将它们分组,这样您只得到一个记录。然后,您获取第一条记录(Person
),并为该TeamNumber选择该记录。然后,您对整个列表执行此操作,并将其作为一个新的List返回。然后,我建议您仔细阅读linq