对各种数组的操作

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 
 6 //CopyTo操作只能在两个一维数组之间进行,而Copy操作可以按照指定长度复制两个数组之间的元素,Clone操作是创建浅表副本。
 7 //本实例中在修改TestClassArray2的元素值的时候,TestClassArray1的元素同时被改变。当使用new关键字和MtTestClass的构造函数修改TestClassArray2中的元素时,TestClassArray1中的元素不会同时改变,这是一个需要注意的地方,即两个数在托管内存中处于不同的位置,并不存在引用关系,仅仅是两个克隆数组相同位置的元素,指向同一个托管内存位置而已。
 8 namespace OperationOfArray
 9 {
10     class Program
11     {
12         class MtTestClass
13         {
14             public int test1;
15             public int test2;
16             public MtTestClass(int t1, int t2)
17             {
18                 test1 = t1;
19                 test2 = t2;
20 
21             }
22         }
23         static void Main(string[] args)
24         {
25             int[] OneDimensional1 = { 0, 1, 2, 3, 4 };
26             int[] OneDimensional2 = new int[7];
27             OneDimensional1.CopyTo(OneDimensional2, 0);
28 
29 
30 
31             MtTestClass[] TestClassArray1 = { new MtTestClass(1, 1), new MtTestClass(2, 2) };
32             //创建引用类型数组的浅表副本
33             MtTestClass[] TestClassArray2 = (MtTestClass[])TestClassArray1.Clone();
34             //修改副本中的值,此操作将改变克隆源数组的元素
35             TestClassArray2[1].test1 = 3;
36             TestClassArray2[1].test2 = 3;
37 
38 
39 
40             int[,] TwoDimensional1 = { { 0, 1, 2, 3, 4 }, { 10, 11, 12, 13, 14 } };
41             int[,] TwoDimensional2 = new int[3, 7];
42             TwoDimensional2=(int[,])TwoDimensional1.Clone();
43 
44             int[][] JaggedArray1 = { new int[]{20,21,22},new int[]{23,34},new int[]{25,26,27,28}};
45             int[][] JaggedArray2=new int[3][];
46             Array.Copy(JaggedArray1, JaggedArray2, 3);
47 
48 
49 
50             Console.WriteLine("OneDimensional2第4个元素为:" + OneDimensional2[3]);
51             Console.WriteLine("OneDimensional2的长度为:" + OneDimensional2.Length);
52             Console.WriteLine("TwoDimensional2的第2,4个元素为:" + TwoDimensional2[1,3]);
53 
54             Console.WriteLine("JaggedArray2的长度为:" + JaggedArray2.GetLength(0));
55 
56             Console.WriteLine("JaggedArray2第3个元素的长度为:" + JaggedArray2[2].GetLength(0));
57 
58             Console.WriteLine("TestClassArray1第2个元素的test1成员值为:" + TestClassArray1[1].test1);
59 
60             Console.WriteLine();
61 
62 
63         }
64     }
65 }

 

posted on 2013-07-15 09:04  wsmmdts  阅读(230)  评论(0)    收藏  举报

导航