public static string GetSubItemResultExplain(int paperId, string subitemName, float subitemScore) { DataTable dt = SubItem.GetSubItemResultExplain(paperId, subitemName); int i = 0; string result; while (i < dt.Rows.Count) { string[] scoreSpans = dt.Rows[i]["FscoreSpan"].ToString().Split(new char[] { '|' }); if (scoreSpans.Length != 2) { result = ""; } else { float lowerScore = float.Parse(scoreSpans[0]); float upperScore = float.Parse(scoreSpans[1]); if (subitemScore < lowerScore || subitemScore >= upperScore) { i++; continue; } result = dt.Rows[i]["FresultText"].ToString(); } return(result); } result = ""; return(result); }
public static string GetSubItemResultExplain(int paperId, float[] subitemScores, int[] excludeIdxs, int count) { SubitemScoreEntry[] sses = new SubitemScoreEntry[subitemScores.Length]; for (int i = 0; i < subitemScores.Length; i++) { sses[i] = new SubitemScoreEntry(i + 1, subitemScores[i]); } Array.Sort(sses); int[] subitemIdxs = new int[count]; int j = sses.Length - 1; int idx = 0; while (j >= 0 && idx < count) { bool exclude = false; if (excludeIdxs != null) { for (int k = 0; k < excludeIdxs.Length; k++) { if (sses[j].index == excludeIdxs[k]) { exclude = true; break; } } } if (!exclude) { subitemIdxs[idx++] = sses[j].index; } j--; } string maxSubitemIds = ""; for (int l = 0; l < subitemIdxs.Length; l++) { maxSubitemIds += subitemIdxs[l]; if (l != subitemIdxs.Length - 1) { maxSubitemIds += "|"; } } DataTable dt = SubItem.GetSubItemResultExplain(paperId, "多点编码"); string result; for (int m = 0; m < dt.Rows.Count; m++) { if (maxSubitemIds == dt.Rows[m]["FscoreSpan"].ToString()) { result = dt.Rows[m]["FresultText"].ToString(); return(result); } } result = ""; return(result); }