筛选和排序数组

时间:2019-09-16 05:46:22

标签: c# .net angular typescript

我正在为学校管理系统开发.net Web应用程序。

有2个DTO对象“主题”和“学生”

Subject.cs

public class Subject
    {
        public string SubjectCode { get; set; }
        public string SubjectName { get; set; }
        public int StudentsEnrolled { get; set; }
        public IReadOnlyCollection<Student> Students { get; set; }
    }

Student.cs

public class Student
    {
        public string StudentId { get; set; }
        public string StudentName { get; set; }
        public int Marks { get; set; }
        public int Status { get; set; }
    }

有一个API方法“ GetSubjectDetails”,我们需要将主题名称作为参数传递。输出是一个“主题”对象,其中包含“主题”详细信息和该主题的注册学生列表。

Subject subject = GetSubjectDetails("Mathematics);

现在我有了Subject对象,其中包含所有50个学生列表。 现在,我只需要筛选10个在该学科中得分最低的学生即可。

如何过滤对象。我可以使用打字稿在服务器端或前端的C#.net中完成此操作。

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

尝试一下:

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