static public List <SHSchool.Data.SHStudentRecord> SHSchoolData_SHStudentRecord(List <SHSchool.Data.SHStudentRecord> StudentList) { //整理出學生&班級資料清單 List <string> classIDList = new List <string>(); foreach (SHSchool.Data.SHStudentRecord student in StudentList) { if (!string.IsNullOrEmpty(student.RefClassID)) { if (!classIDList.Contains(student.RefClassID)) { classIDList.Add(student.RefClassID); } } } //一次取得班級清單 List <SHSchool.Data.SHClassRecord> classList = SHSchool.Data.SHClass.SelectByIDs(classIDList); //班級ID對照清單 Dictionary <string, SHSchool.Data.SHClassRecord> classDic = new Dictionary <string, Data.SHClassRecord>(); foreach (SHSchool.Data.SHClassRecord classRecord in classList) { if (!classDic.ContainsKey(classRecord.ID)) { classDic.Add(classRecord.ID, classRecord); } } List <StudentSortObj_SHSchoolData> list = new List <StudentSortObj_SHSchoolData>(); foreach (SHSchool.Data.SHStudentRecord student in StudentList) { if (!string.IsNullOrEmpty(student.RefClassID)) { StudentSortObj_SHSchoolData obj = new StudentSortObj_SHSchoolData(classDic[student.RefClassID], student); list.Add(obj); } else { StudentSortObj_SHSchoolData obj = new StudentSortObj_SHSchoolData(null, student); list.Add(obj); } } list.Sort(SortSHSchoolData_SHStudentRecord); return(list.Select(x => x._StudentRecord).ToList()); }
static private int SortSHSchoolData_SHStudentRecord(StudentSortObj_SHSchoolData obj1, StudentSortObj_SHSchoolData obj2) { return(obj1._SortString.CompareTo(obj2._SortString)); }