删除数组中元素且不改变长度
更多c#文章来自codego.net/tags/1/1/
程序中删除的两种情况.一是不改变总数,而是删除后长度减少.下面是第一种情况.
主要在于删除长度后面的数组元素初始化为0,从而实现长度不变.
static void DeleteArray(int[] ArrayBorn, int Index, int Len)
{
if (Len <= 0)//判断删除长度是否小于等于0
return;//返回
if (Index == 0 && Len >= ArrayBorn.Length)//判断删除长度是否超出了数组范围
Len = ArrayBorn.Length;//将删除长度设置为数组的长度
else if ((Index + Len) >= ArrayBorn.Length)//判断删除索引和长度的和是否超出了数组范围
Len = ArrayBorn.Length - Index - 1;//设置删除的长度
int i = 0;//定义一个int变量,用来标识开始遍历的位置 codego.net/tags/1/1/
for (i = 0; i < ArrayBorn.Length - Index - Len; i++)//遍历删除的长度
ArrayBorn[i + Index] = ArrayBorn[i + Len + Index];//覆盖要删除的值
//遍历删除长度后面的数组元素值
for (int j = (ArrayBorn.Length - 1); j > (ArrayBorn.Length - Len - 1); j--)
ArrayBorn[j] = 0;//设置数组为0
}
更多c#文章来自codego.net/tags/1/1/
程序中删除的两种情况.一是不改变总数,而是删除后长度减少.下面是第一种情况.
主要在于删除长度后面的数组元素初始化为0,从而实现长度不变.
static void DeleteArray(int[] ArrayBorn, int Index, int Len)
{
if (Len <= 0)//判断删除长度是否小于等于0
return;//返回
if (Index == 0 && Len >= ArrayBorn.Length)//判断删除长度是否超出了数组范围
Len = ArrayBorn.Length;//将删除长度设置为数组的长度
else if ((Index + Len) >= ArrayBorn.Length)//判断删除索引和长度的和是否超出了数组范围
Len = ArrayBorn.Length - Index - 1;//设置删除的长度
int i = 0;//定义一个int变量,用来标识开始遍历的位置 codego.net/tags/1/1/
for (i = 0; i < ArrayBorn.Length - Index - Len; i++)//遍历删除的长度
ArrayBorn[i + Index] = ArrayBorn[i + Len + Index];//覆盖要删除的值
//遍历删除长度后面的数组元素值
for (int j = (ArrayBorn.Length - 1); j > (ArrayBorn.Length - Len - 1); j--)
ArrayBorn[j] = 0;//设置数组为0
}
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29971755/viewspace-1317527/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29971755/viewspace-1317527/