我正在为学校管理系统开发.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中完成此操作。
答案 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();