C#删除数组

怎么通过下标删除数组,改变数组的Length....刚过中秋节,竟然大脑突然性失忆,忘了怎么删

不得不说。数组中的元素是不可以直接删除的,你只能去修改它。一楼的方法也是如此,我解释一下,就是将你原来的数组记录下来,然后将整个数组重新实例(new )为lenth-1长度的数组,然后再将记录中的数据一个一个拿进来。。。。这样做你是不是觉得有点罗嗦呢?如果你想直接什么可变长度的集合的话,用list<>吧,比如list<int> sums=new list<int>();这样要添加一个元素sums.Add(5);要删除下标为index的元素sums.Remove(index);即可数组建议使用在不可变的地方,可变的话,还是不要去使用了。如一楼的方法 ,其实仔细看就会发现,也是通过list<>来实现的。如此为什么不直接用list呢
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-05-19
class Program
{
static void Main(string[] args)
{
int num = 4;//要删除元素的下标
int[] arr=new int[]{ 0,1,2,3,4,5,6,7,8,9 };
Console.WriteLine("删除前该数组的长度:{0}", arr.Length);
foreach (int a in arr)
{
Console.Write(a + "\t");
} arr = DeleteArr(num, arr);//调用删除方法

Console.WriteLine("\n删除后该数组的长度:{0}", arr.Length);
foreach (int a in arr)
{
Console.Write(a + "\t");
}
}
//通过下标删除数组方法
private static int[] DeleteArr(int num, int[] arr)
{
List<int> list = new List<int>();
foreach (int i in arr)
{
list.Add(i);//把数组的每一个元素保存到一个集合中
}
list.Remove(num);//根据集合删除指定下标的元素
arr = new int[list.Count];//重新new一个数组
for (int j = 0; j < list.Count; j++)
{
arr[j] = list[j];//把删除后的集合每一个保存到该数组
}
return arr;//返回该数组
}
}本回答被网友采纳