C# 过滤和排序数组

C# 过滤和排序数组,c#,.net,angular,typescript,C#,.net,Angular,Typescript,我正在为学校管理系统开发一个.NETWeb应用程序 有两个DTO对象:主体和学生 科目C public class Subject { public string SubjectCode { get; set; } public string SubjectName { get; set; } public int StudentsEnrolled { get; set; } public IReadOnlyCollecti

我正在为学校管理系统开发一个.NETWeb应用程序

有两个DTO对象:主体和学生

科目C

public class Subject
    {
        public string SubjectCode { get; set; }
        public string SubjectName { get; set; }
        public int StudentsEnrolled { get; set; }
        public IReadOnlyCollection<Student> Students { get; set; }
    }
有一个API方法“GetSubjectDetails”,我们需要将主题名称作为参数传递给它。输出是一个主题对象,包含主题详细信息和注册该主题的学生列表

Subject subject = GetSubjectDetails("Mathematics);
现在我有一个主题对象,里面有50个学生的名单。 现在我需要过滤对象,只有10名学生在该科目中得分最低


如何过滤对象。我可以在服务器端的C#.net中或者在前端使用typescript来完成这项工作。

您可以在服务器端使用LINQ,bcs加载所有对象,而在ui端进行过滤没有意义,因此您可以执行以下操作

subject.Students=subject.Students.OrderBy(s=>s.Marks).Take(10).ToList().AsReadOnly();

试试这个:

var students = subject.Students.OrderByDescending(x => x.Marks).Take(10).ToList();

研究Linq
OrderBy
,然后
Take
看看你有什么想法
var students = subject.Students.OrderByDescending(x => x.Marks).Take(10).ToList();