31)以下C#代码运行结果是()(选择一项 )

来源:百度知道 编辑:UC知道 时间:2024/05/27 18:47:10
Public void Test()
{
List<int> numbers = new List<int>();
For(int i=1;i<6;i++)
{
Numbers.Add(i);
}
for (int i=1;i<3;i++)
{
numbers.Remove(i);
}
foreach( int i in numbers)
{
Console.Write(i.toString());
}

}
运行出错
134
145
135

说下理由和怎么理解的
选哪个?? 一本题解释

打比方 第一个循环算1+10==多少 放入泛型集合 第2个循环算1+5==多少 Remove取出1+5==多少的数 在遍历以下剩下的数目

135

List<int> numbers = new List<int>();
For(int i=1;i<6;i++)
{
Numbers.Add(i);
}

这里在numbers中放入12345,实际位置为01234

for (int i=1;i<3;i++)
{
numbers.Remove(i);
}
这个循环做了两次移除操作,分别为1,2
第一次:numbers.Remove(1);移除了位置1,即移除了2
numbers对象为:1345,位置为0123
第二次:numbers.Remove(1);移除了位置2,即移除了4

所以numbers对象为:135

呃,想错了,C#中Remove(item),是移除项,与java中remove(i)不一样
如果是Remove(i)的话,正解答案是345,C#中RemoveAt(index),才是移除索引

我怎么算的是345呢?
for(int i=1;i<6;i++)
{
Numbers.Add(i);
}
//这个循环得到的i值是1,2,3,4,5。并将这些值添加到numbers泛型内
for (int i=1;i<3;i++)
{
numbers.Remove(i);
}
//这个循环是将nmubers里的1,2值删除掉。
所以得到345.。

提示:如果你将numbers.Remover(i) 改成numbers.RemoverAt(i)。得到的就是135.因为这是将numbers数组里的第1项,第2项里的值给删除掉。
而numbers数组排序是从0开始的。
详解:就是number