public class Student
{
public string? Name { get; set; }
public string? Sex { get; set; }
public int Score { get; set; }//成绩
public string? Course { get; set; }//课程
}
//数据源
List<Student> students = new List<Student>
{
new Student(){Name="刘一",Sex="男",Score=1 ,Course="语文"},
new Student(){Name="陈二",Sex="男",Score=1 ,Course="语文"},
new Student(){Name="张三",Sex="男",Score=1 ,Course="语文"},
new Student(){Name="张三",Sex="男",Score=1 ,Course="数学"},//重复行3
new Student(){Name="张三",Sex="男",Score=1 ,Course="音乐"},//重复行3
new Student(){Name="李四",Sex="男",Score=1 ,Course="语文"},
new Student(){Name="刘一",Sex="男",Score=1 ,Course="美术"},//重复行1
new Student(){Name="王五",Sex="男",Score=1 ,Course="语文"},
new Student(){Name="赵六",Sex="男",Score=1 ,Course="语文"},
new Student(){Name="张三",Sex="男",Score=1 ,Course="化学"}//重复行3
};
List<Student> result = new List<Student>();
while (students.Count > 0)
{
Student stu = students[0];
students.RemoveAt(0);//移除元素
List<Student> list = new List<Student>();//创建临时列表
foreach (var item in students)
{
if (item.Name.Equals(stu.Name))
{
stu.Score += item.Score;
stu.Course += " "+item.Course;
}
else
{
list.Add(item);
}
}
students = list;
result.Add(stu);
}
foreach (var item in result)
{
Console.WriteLine(item.Name +"丨"+item.Sex + "丨" + item.Score + "丨" + item.Course);
}