为什么删除数组的某个元素,总是提示索引超出数组界限
string[] furniture = new string[] { "桌子", "椅子", "床", "沙发" };
int length = furniture.Length;
Console.WriteLine("the length of the array furniture is {0}", length);
Console.WriteLine("please input the index of what you delete:");
int index = Convert.ToInt16(Console.ReadLine());
if (index < 0 && index > 3)
{
Console.WriteLine("the index you input is wrong");
}
else
{
for (int i = index; i < length; i++)
{
furniture[i] = furniture[i + 1];//总是提示索引超出数组界限
}
}
foreach (string m in furniture)
{
Console.WriteLine("after delete the index is {0}", m);
}
Console.ReadLine();
}
[解决办法]
furniture[i] = furniture[i + 1];你这个不超界限才怪。。。。
[解决办法]
当i=3的时候 i+1=4>furniture.Length, furniture[i + 1]已经超出数组长度,注:索引从0开始
[解决办法]
索引是从0开始的- -,如果还有点晕的话,单步一下就懂了。
[解决办法]
i < length
=>
i < length-1
[解决办法]
删除数组某一元素用RemoveAt()就好了啊?
[解决办法]
数组的长度是固定的,印象中不存在删除某项的概念。如果其中的某个元素不需要了,一般是做致空操作。
如果需要动态改变的集合,可以用List<T>
[解决办法]
................多看看基础的书吧
[解决办法]