case "不定项选择类":
strUserAnswer=strUserAnswer.Trim().Replace(",","");
strUserAnswer=strUserAnswer.Trim().Replace(" ","");
if (strUserAnswer.ToUpper() == SqlDSTest.Tables["xinUserAnswer"].Rows[i]["StandardAnswer"].ToString().Replace(" ", "").ToUpper())
{
dblUserScore = Convert.ToDouble(SqlDSTest.Tables["xinUserAnswer"].Rows[i]["TestMark"]);
dblImpScore = dblImpScore + dblUserScore;
}
else
{
string strAnswer = SqlDSTest.Tables["xinUserAnswer"].Rows[i]["StandardAnswer"].ToString().Replace(" ", "").ToUpper();
string strStuAnswer = strUserAnswer.ToUpper();
string[] stuAnswer = strStuAnswer.Split(',');
bool isRight = true;
foreach (string a in stuAnswer)//遍历学生选的每个选项
{
isRight &= Regex.IsMatch(strAnswer, a);//与正确答案做比较,有一个答案不对isRight将置为false
}
if (isRight)
{
dblUserScore = Convert.ToDouble(SqlDSTest.Tables["xinUserAnswer"].Rows[i]["TestMark1"]);
dblImpScore = dblImpScore + dblUserScore;
}
}
如果这样写比如正确答案是ABCDE的时候
学生选择ABC是对的有对应分数,
但是选择ABD就错了,求大神帮忙更正
用户输入的格式是什么,数据库里答案的格式是什么?
直接split分割,用SequenceEqual判断下