private decimal 加權平均(ReportStudent student, ItemWeightCollection subjectWeight, ItemWeightCollection domainWeight) { decimal sum = 0, weight = subjectWeight.GetWeightSum() + domainWeight.GetWeightSum(); foreach (string scoreItem in subjectWeight.Keys) { sum += (student.Scores[SubjectToken][scoreItem] * subjectWeight[scoreItem]); } foreach (string scoreItem in domainWeight.Keys) { sum += (student.Scores[DomainToken][scoreItem] * domainWeight[scoreItem]); } if (weight == 0) { return(0); } else { return(Round(sum / weight)); } }