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