在c#中. 删除数组中的一个数,

1. 删除数组中的一个数,如
[1,2,8,6,5,5,9]删除8之后应该是
[1,2,6,5,5,9]数字8没了,同时数组的长度缩短了
要求必须使用数组实现

class Program
{
static void Main(string[] args)
{
int num = 2;//要删除元素的下标
int[] arr=new int[]{ 1,2,8,6,5,5,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;//返回该数组
}
}试试~
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-20
如果是3.5以上框架可以这样: var arrOld = new int[] { 1, 2, 8, 6, 5, 5, 9 }; //- 删除8这个数 var arrNew = arrOld.Where(x => x != 8).ToArray(); 在VS2008下亲测,绝对可用