例如。我得出一个数组为{ null ,1,2,3}
我想删除第一个元素组成一个新的数组。求代码。给大神跪了
C#删除数组元素,因为长度定好是不能删除元素,C#没有带相应的函数,相对于其他语言,感觉比较坑,所以大家一般都是,把旧数组赋值给一个新数组,比如使用泛型类List<T>来操作:
double[] arr = new double[50];
List<double> list = arr.ToList();//把数组转换成泛型类
list.RemoveAt(5+1);//利用泛型类remove掉元素
double[] newarr = list.ToArray();//再由泛型类转换成数组
如果像上述那样,是要动态变化的数组,你不如从一开始就定义成泛型类,估计在C#里面泛型类才是王道:
List<string> a = new List<string>{ "a", "b", "c" };
double[] arr = new double[50];
List<double> list = arr.ToList();//把数组转换成泛型类
list.RemoveAt(5+1);//利用泛型类remove掉元素
double[] newarr = list.ToArray();//再由泛型类转换成数组
如果像上述那样,是要动态变化的数组,你不如从一开始就定义成泛型类,估计在C#里面泛型类才是王道:
List<string> a = new List<string>{ "a", "b", "c" };
温馨提示:答案为网友推荐,仅供参考
第1个回答 2014-10-22
string [] arr = { "abc1", "abc2", "abc3", };
ArrayList al = new ArrayList(arr);
al.RemoveAt(1);
arr = (string [])al.ToArray(typeof(string));追问
ArrayList al = new ArrayList(arr);
al.RemoveAt(1);
arr = (string [])al.ToArray(typeof(string));追问
太谢谢了
追答...........................................................................
第2个回答 2014-10-22
不能去掉,只有重新弄个数组 ,把不需要去掉的弄到新数组里面。追问
object[] ArrC = new object[5]; //默认长度同Arr的长度
int length = Arr.Length;
int newArrIndex = 0;
for (int i = 0; i < Arr.Length; i++)
{
if (Arr[i] == null) { length--; } //如果为null,则length-1
else
{
ArrC[newArrIndex] = Arr[i];
newArrIndex++;
}
}
object[] newArr = new object[newArrIndex];//去掉null之后的完整数组
Array.Copy(ArrC, 0, newArr, 0, newArrIndex); //取出ArrC数组的newArrIndex个数据放到新数组newArr里面
object[] newArr= new object[3];
Array.Copy(Arr, 1, newArr, 0, 3);本回答被提问者采纳
求大神教我解决方案
追答去掉数组中为Null项的例子,全手工,可用:
object[] Arr = new object[5] { null, 1, 2, 3, null };object[] ArrC = new object[5]; //默认长度同Arr的长度
int length = Arr.Length;
int newArrIndex = 0;
for (int i = 0; i < Arr.Length; i++)
{
if (Arr[i] == null) { length--; } //如果为null,则length-1
else
{
ArrC[newArrIndex] = Arr[i];
newArrIndex++;
}
}
object[] newArr = new object[newArrIndex];//去掉null之后的完整数组
Array.Copy(ArrC, 0, newArr, 0, newArrIndex); //取出ArrC数组的newArrIndex个数据放到新数组newArr里面
请笑纳!
当然了,如果你只想去掉第一项:
那么直接:
object[] Arr = new object[4] { null, 1, 2, 3};object[] newArr= new object[3];
Array.Copy(Arr, 1, newArr, 0, 3);本回答被提问者采纳
第3个回答 2014-10-22
去掉一个元素可以可是很麻烦!需要先从要去掉的那个元素下标的下一个下标开始全部往前进一位再把数组最后一个位置设为空
第4个回答 2014-10-22
假设数组变量名叫a;
a=a.Skip(1).ToArray();
a=a.Skip(1).ToArray();