判断两个数组是否相同怎么做? 比如我有一个是多选题的答案,答案是a,b,c现在用户通过winfrom选择答案,我怎么判断用户的选择与正确答案是相同的? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 两者相 与 结果为 true 则相同 public void Test(){ Choice[] answer01_1 = new Choice[] { Choice.A, Choice.B, Choice.C }; Choice[] answer01_2 = new Choice[] { Choice.A, Choice.B, Choice.C, Choice.D }; Choice[] true_answer01 = new Choice[] { Choice.A, Choice.B, Choice.C }; Console.WriteLine(true_answer01.Intersect(answer01_1).Count() == answer01_1.Length); Console.WriteLine(true_answer01.Intersect(answer01_2).Count() == answer01_2.Length); //如果你用位操作,就更简单了。 Choice answer1_1 = Choice.A | Choice.B | Choice.C; Choice answer1_2 = Choice.A | Choice.B | Choice.C| Choice.D; Choice answer1_3 = Choice.A | Choice.C ; Choice true_answer1 = Choice.A | Choice.B | Choice.C; Console.WriteLine(answer1_1 == true_answer1); Console.WriteLine(answer1_2 == true_answer1); Console.WriteLine(answer1_3 == true_answer1);}public enum Choice { A = 1, B = 2, C = 4, D = 8 } 稍微修改一下public void Test(){ Choice[] answer01_1 = new Choice[] { Choice.A, Choice.B, Choice.C }; Choice[] answer01_2 = new Choice[] { Choice.A, Choice.B, Choice.C, Choice.D }; Choice[] answer01_3 = new Choice[] { Choice.A, Choice.B }; Choice[] true_answer01 = new Choice[] { Choice.A, Choice.B, Choice.C }; //以下修改 Console.WriteLine(true_answer01.Intersect(answer01_1).Count() == answer01_1.Length && answer01_1.Length== true_answer01.Length); Console.WriteLine(true_answer01.Intersect(answer01_2).Count() == answer01_2.Length && answer01_2.Length == true_answer01.Length); Console.WriteLine(true_answer01.Intersect(answer01_3).Count() == answer01_3.Length && answer01_3.Length == true_answer01.Length); //如果你用位操作,就更简单了。 Choice answer1_1 = Choice.A | Choice.B | Choice.C; Choice answer1_2 = Choice.A | Choice.B | Choice.C | Choice.D; Choice answer1_3 = Choice.A | Choice.C; Choice true_answer1 = Choice.A | Choice.B | Choice.C; Console.WriteLine(answer1_1 == true_answer1); Console.WriteLine(answer1_2 == true_answer1); Console.WriteLine(answer1_3 == true_answer1);} 数组相同值List<string> lst1 = new List<string>(){"A"};List<string> lst2= new List<string>() { "B"}lstNew = lst1.Intersect(lst2, StringComparer.OrdinalIgnoreCase); 把答案写成字符串来判断//判读多选题答案正确性 answer:用户答案 correct正确答案 public static bool bolAnswer(string answer, string correct) {//把字符串转换成数组 char[] chrAnswer = answer.ToCharArray(); char[] chrCorrect = correct.ToCharArray();//判断用户数据是否为空 if(answer.Length<1) { return false; }//判读用户答案长度是否与正确答案长度一致 else if (!answer.Length.Equals(correct.Length)) { return false; } else { for (int i = 0; i < answer.Length; i++) { for (int j = 0; j < correct.Length; j++) { int n = 1; if (chrAnswer[i] == chrCorrect[j]) { break; } else { n++; } if (n > correct.Length) { return false; } } } return true; } } C#多线程内存占用的问题如何解决? 如何提高.NET网站性能 ? 字符串替换问题 关于wpf数据绑定的两个问题 xna 做成用户自定义控件,急求! 谁研究过Asp.Net Forums的登录,进来解决个简单问题?谢谢!!! 郁闷,继续散分问问题 请问怎么与远程数据库相连? DataRowCollection使用过程中莫名错误?有时出现提示索引X找不到,详细请进 求高手指点,加载xml文件数据不成功?跪求!!! 接受视频信号 vs 2010 自带报表rdlc
{
Choice[] answer01_1 = new Choice[] { Choice.A, Choice.B, Choice.C };
Choice[] answer01_2 = new Choice[] { Choice.A, Choice.B, Choice.C, Choice.D };
Choice[] true_answer01 = new Choice[] { Choice.A, Choice.B, Choice.C };
Console.WriteLine(true_answer01.Intersect(answer01_1).Count() == answer01_1.Length);
Console.WriteLine(true_answer01.Intersect(answer01_2).Count() == answer01_2.Length); //如果你用位操作,就更简单了。
Choice answer1_1 = Choice.A | Choice.B | Choice.C;
Choice answer1_2 = Choice.A | Choice.B | Choice.C| Choice.D;
Choice answer1_3 = Choice.A | Choice.C ;
Choice true_answer1 = Choice.A | Choice.B | Choice.C;
Console.WriteLine(answer1_1 == true_answer1);
Console.WriteLine(answer1_2 == true_answer1);
Console.WriteLine(answer1_3 == true_answer1);
}public enum Choice { A = 1, B = 2, C = 4, D = 8 }
{
Choice[] answer01_1 = new Choice[] { Choice.A, Choice.B, Choice.C };
Choice[] answer01_2 = new Choice[] { Choice.A, Choice.B, Choice.C, Choice.D };
Choice[] answer01_3 = new Choice[] { Choice.A, Choice.B };
Choice[] true_answer01 = new Choice[] { Choice.A, Choice.B, Choice.C };
//以下修改
Console.WriteLine(true_answer01.Intersect(answer01_1).Count() == answer01_1.Length && answer01_1.Length== true_answer01.Length);
Console.WriteLine(true_answer01.Intersect(answer01_2).Count() == answer01_2.Length && answer01_2.Length == true_answer01.Length);
Console.WriteLine(true_answer01.Intersect(answer01_3).Count() == answer01_3.Length && answer01_3.Length == true_answer01.Length); //如果你用位操作,就更简单了。
Choice answer1_1 = Choice.A | Choice.B | Choice.C;
Choice answer1_2 = Choice.A | Choice.B | Choice.C | Choice.D;
Choice answer1_3 = Choice.A | Choice.C;
Choice true_answer1 = Choice.A | Choice.B | Choice.C;
Console.WriteLine(answer1_1 == true_answer1);
Console.WriteLine(answer1_2 == true_answer1);
Console.WriteLine(answer1_3 == true_answer1);
}
List<string> lst1 = new List<string>(){"A"};
List<string> lst2= new List<string>() { "B"}
lstNew = lst1.Intersect(lst2, StringComparer.OrdinalIgnoreCase);
//判读多选题答案正确性 answer:用户答案 correct正确答案
public static bool bolAnswer(string answer, string correct)
{
//把字符串转换成数组
char[] chrAnswer = answer.ToCharArray();
char[] chrCorrect = correct.ToCharArray();
//判断用户数据是否为空
if(answer.Length<1)
{
return false;
}
//判读用户答案长度是否与正确答案长度一致
else if (!answer.Length.Equals(correct.Length))
{
return false;
}
else
{
for (int i = 0; i < answer.Length; i++)
{
for (int j = 0; j < correct.Length; j++)
{
int n = 1;
if (chrAnswer[i] == chrCorrect[j])
{
break;
}
else
{
n++;
}
if (n > correct.Length)
{
return false;
}
}
}
return true;
}
}