c#清空数组&初始化数组&动态数组

时间:2021-08-18 10:53:45

清空数组>>>Array.Clear [去MSDN查看]

c#清空数组&初始化数组&动态数组

 string[] str = new string[];
for (int i = ; i < str.Length; i++)
str[i] = i.ToString();
Array.Clear(str, , str.Length);
for (int i = ; i < str.Length; i++)
Console.WriteLine(string.IsNullOrEmpty(str[i]) ? "null" : str[i]);
//输出结果:
//null
//null

初始化数组>>>Initialize [去MSDN查看]

只是用于初始化,如果数组子项已经被初始化,那么不会改变它的值.(删除下面代码 x[1] = 6; 试试)

 int[] x = new int[];
int[] y = new int[];
x[] = ; x[] = ;
x.Initialize();
y.Initialize();
for (int i = ; i < x.Length; i++)
Console.WriteLine("x:{0} y:{1}", x[i], y[i]);
//输出结果:
//x:5 y:0
//x:6 y:0

动态修改数组大小>>>Array.Resize [去MSDN查看]

处理流程是:先创建一个新的数组,然后把旧数组赋值过去.

 int[] x = new int[];
x[] = ; x[] = ;
Array.Resize(ref x, x.Length + );
for (int i = ; i < x.Length; i++)
Console.WriteLine("x[{0}]={1}",i, x[i]);
//输出结果:
//x[0]=5
//x[1]=6
//x[2]=0
//x[3]=0

如果数组较大,性能影响明显,建议用List<>的AddRange方法. [去MSDN查看]

 List<int> lst = new List<int>();
lst.Add(); lst.Add();
int[] x = new int[];
x[] = ; x[] = ;
lst.AddRange(x);
for (int i = ; i < lst.Count; i++)
Console.WriteLine("lst[{0}]={1}", i, lst[i]);
//输出结果:
//lst[0]=3
//lst[1]=4
//lst[2]=5
//lst[3]=6

关于Array数组复制拷贝,倒叙,排序等,详情参见MSDN