假设已创建Student类的3个对象stu1、stu2和stu3,下面C#代码的运行结果是(B )。
List<Student> students = new List<Student>();
students.Add(stu1);
students.Add(stu2);
students.Add(stu3);
for(int i=0; i<students.Count; i++)
students.RemoveAt(i);
Console.WriteLine(students.Count); (选择一项)
A) 0
B) 1
C) 2
D) 编译出错答案为什么是‘1’啊。麻烦解释详细点
List<Student> students = new List<Student>();
students.Add(stu1);
students.Add(stu2);
students.Add(stu3);
for(int i=0; i<students.Count; i++)
students.RemoveAt(i);
Console.WriteLine(students.Count); (选择一项)
A) 0
B) 1
C) 2
D) 编译出错答案为什么是‘1’啊。麻烦解释详细点
解决方案 »
- 未将对象引用设置到对象实例的问题
- 关于3D命名空间
- 如何筛选考勤原始数据中的有效数据
- 要怎么判断DateTime这个字段为空呀?
- 在HTML中画了个table宽是75px 在C#里用graphics DrawRectangle了一个宽75的矩形 为啥不一样长?
- 怎样取存储过程中的return返回值?
- 周末快下班了,写的这个程序执行不下去了。在线等高手一起讨论解决。
- 求最佳产品组合算法使库存中的零件剩余最少?
- 如何控制打开桌面程序的输入框,按钮,以及获取返回结果
- 进程和线程有什么区别?Spy++是什么工具?
- Team Foundation Serve. check in 出错,提示:无法将数据写入传输连接:句柄无效
- 求解。。。将数字写入文件时变成对应的ASCII码了!请问怎么解决》?
stu2没有删除
students.RemoveAt(i);i=0时,list中为stu1,stu2,stu3;list.count=3,i<count,删掉第0个,即stu1被删除。
此时list中为stu2,stu3,count变为2
i=1时,i<count,删掉第1个,即stu3被删除;
此时list中为stu2,count变为1
i=2时,i>count,条件不符合,不执行for循环中的语句。
故最后count为1,且这仅存的元素为stu2
你应该反过来删除
for(int i= students.Count - 1; i>=0; i--)
students.RemoveAt(i);