C# 一维二维数组的定义与foreach语句的使用

 1         static void Main(string[] args)
 2         {
 3             //一维数组的两种初始化
 4             //动态初始化
 5             int a = 5;
 6             int[] aa = new int[10];
 7             int[] bb = new int[a];
 8             //利用new给int数组在堆中开空间初始化数组的方法,[]内是可以是变量或者常量的
 9             //但是另外一种情况不行
10             int[] cc = new int[] {1,2,3,4,5,6,7,8,9};
11             //这种情况下[]内是不能用变量的,里面只能用常量,就算是附了值的也不行,例如上面的变量a就不行。
12             int[] dd = new int[10] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
13             //在这种情况下,用new分配了空间的情况下,并且用{}进行写入的情况,就一定要写满[]内对应的值的数据
14             //不能多也不能少
15             int[] ee = new int[10] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
16 
17 
18             //一维数组的静态初始化
19             //类似于C的数组,但是也有不一样的地方
20             int[] ff = {1,2,3,4,5,6 };
21             //int[6] gg = {1,2,3,4,5,6 };
22             //比如这里就不能像C一样指定数组的长度
23             //而且这里不能写成
24             int [] c;     //这里是正确的
25             //    c={1,2,3};  这里不能这么写,因为没有开设堆空间给c
26             c = new int[] { };
27             //这样才是正确的
28 
29 
30             //foreach函数的使用
31             //借用上面的int[] dd = new int[10] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
32             //原来我们C显示数组都是考循环和下标一个一个输出的,现在我们可以使用一个foreach来实现
33 
34 
35             string test = "SB";
36             foreach (int i in dd)  //显示迭代变量
37             {
38                 Console.WriteLine("数组输出={0}", i);
39                 //因为我们无法通过直接手段让迭代变量i输出出来
40                 //所以我们利用字符串的叠加和格式化让其输出出来
41                 test = test + i;
42                 string.Format(test);
43                 Console.WriteLine("测试迭代函数的值是多少={0}", test);
44                 //输出结果证明迭代变量是从数组内1开始的
45                 //但我们不清楚是从1开始,还是与数组有关
46             }
47 
48             //我们再测试一下
49             test = "SB";//test归位
50             int[] zimu = {5,9,5,15,26,5,5,62};
51             foreach (int i in zimu )  
52             {
53                 Console.WriteLine("数组输出={0}", i);
54                 test = test + i;
55                 string.Format(test);
56                 Console.WriteLine("测试迭代函数的值是多少={0}", test);
57                 //从这里我们看出,迭代变量,代表的就是数组对应的一个个数据。
58             }
59 
60             //迭代变量会不会和数组的数据有关呢?
61             test = "SB";//test归位
62             char[] zimu2 = { '5', '6', 'j' };
63             foreach (int i in zimu2)
64             {
65                 Console.WriteLine("数组输出={0}", i);
66                 test = test + i;
67                 string.Format(test);
68                 Console.WriteLine("测试迭代函数的值是多少={0}", test);
69                 //从这里我们看出,这里看出来,输出的数据是什么,取决于迭代变量的类型
70                 //这里的字符j被转换成asc2表上的106输出了
71             }
72 
73             test = "SB";//test归位
74             string[] zimu3 = { "啊这azhe 123" };//隐式迭代变量
75             foreach (var i in zimu3)
76             {
77                 Console.WriteLine("数组输出={0}", i);
78                 test = test + i;
79                 string.Format(test);
80                 Console.WriteLine("测试迭代函数的值是多少={0}", test);
81                 //由于int无法和string发生转换,所以这里只能用var隐式迭代变量
82                 
83             }
84 
85 
86         }

 二维数组

 1         static void Main(string[] args)
 2         {
 3             //二维数组
 4             int[,] a;//这里通过[,]的组合建立一个二维数组
 5             int[,,] p;//中间这种做法是可以叠加的,从而产生三位数组甚至多维数组
 6 
 7             //二维数组初始化和一维数组一致
 8             //动态
 9             int[,] aa = new int[3, 3] { { 1, 2, 3 }, { 1, 2, 3 }, { 1, 2, 3 } };
10             //注意与C的区别,二维是[a,b]的形式。
11             //和一维数组一样,[]内写了范围,就要一个一个写到位
12 
13             //静态
14             int[,] bb = { { 1 }, { 2 } };
15 
16             //foreach使用一维数组完全一致,不做赘述。
17 
18 
19         }

 

posted @ 2020-09-07 16:08  想活出点人样  阅读(420)  评论(0编辑  收藏  举报