C#动态修改数组维数!
1 using System;
2 using System.Text;
3 namespace ConsoleApplication2
4 {
5 class Class1
6 {
7 [STAThread]
8 static void Main(string[] args)
9 {
10 int[] arr=new int[]{1,2,3};
11 foreach(int x in arr)
12 Console.Write(x+" ");
13 Console.WriteLine();
14 arr=(int[])Redim(arr,5);
15 foreach(int x in arr)
16 Console.Write(x+" ");
17 Console.WriteLine();
18 arr=(int[])Redim(arr,2);
19 foreach(int x in arr)
20 Console.Write(x+" ");
21 Console.WriteLine();
22 }
23 public static Array Redim(Array origArray,int desiredSize)
24 {
25 Type t=origArray.GetType().GetElementType();
26 Array newArray=Array.CreateInstance(t,desiredSize);
27 Array.Copy(origArray,0,newArray,0,Math.Min(origArray.Length,desiredSize));
28 return newArray;
29 }
30 }
31 }
2 using System.Text;
3 namespace ConsoleApplication2
4 {
5 class Class1
6 {
7 [STAThread]
8 static void Main(string[] args)
9 {
10 int[] arr=new int[]{1,2,3};
11 foreach(int x in arr)
12 Console.Write(x+" ");
13 Console.WriteLine();
14 arr=(int[])Redim(arr,5);
15 foreach(int x in arr)
16 Console.Write(x+" ");
17 Console.WriteLine();
18 arr=(int[])Redim(arr,2);
19 foreach(int x in arr)
20 Console.Write(x+" ");
21 Console.WriteLine();
22 }
23 public static Array Redim(Array origArray,int desiredSize)
24 {
25 Type t=origArray.GetType().GetElementType();
26 Array newArray=Array.CreateInstance(t,desiredSize);
27 Array.Copy(origArray,0,newArray,0,Math.Min(origArray.Length,desiredSize));
28 return newArray;
29 }
30 }
31 }
一点说明:为什么在标题中要嵌入英文?原因是为了能够让国外的网友能查询到这篇文章。平常在Google上查资料的时候,经常参考国外网友的博客,帮助我解决了很多问题,所以我也想让他们能够参考我写的内容。当然文中我不可能全部译为英文,所以我尽量把代码粘全,靠代码说话吧。