今天咱们了解下C#中的数组
后面会讲到集合、泛型集合
咱们分开来讲,免得出现混乱
讲完这三个,咱们再汇总一下,看看有什共同点和不同点
定义一个数组:
1 int[] i = new int[5]; 2 3 int[] j = new int[] { 1, 2, 1, 1, 2, 11, 33, 2, 5, 4 };
两种定义方式
数组定义:一定要规定长度、一定要规定类型
当然,上面是int类型的数组,你也可以定义string类型的数组,但是数组就一定要有长度和类型的限制
那咱们一起来尝试下C#中的冒泡排序,咱们分别用int型和string型来做
int类型的冒泡排序
代码贴入
1 int[] i = new int[] { 6, 5, 9, 0, 1, 4, 2, 7, 3, 8 }; 2 3 4 for (int a = 0; a < i.Length; a++) 5 { 6 for (int b = a + 1; b < i.Length; b++) 7 { 8 if (i[a] < i[b]) 9 { 10 int j = i[a]; 11 i[a] = i[b]; 12 i[b] = j; 13 } 14 } 15 Console.WriteLine(i[a]); 16 } 17 Console.ReadLine();
string类型
代码贴入
1 string[] ss = new string[5] { "aaa", "a", "aa", "aaaaa", "aaaa" }; 2 //长度从大到小打印出来,从小到大打印出来 3 for (int i = 0; i < ss.Length; i++) 4 { 5 for (int j = i + 1; j < ss.Length; j++)//长度比较大小 6 { 7 if (ss[i].Length < ss[j].Length)//如果第一段长度小于第二段长度 8 { 9 string b = ss[i]; // 那么位置调换过来 10 ss[i] = ss[j]; 11 ss[j] = b; 12 } 13 } 14 Console.WriteLine(ss[i]); 15 } 16 Console.ReadLine();
下面分别是其效果图
int类型是依照其大小判断
string类型是依照其长度大小来判断
2017-11-04 11:49:38
数组再充实
创建数组
1 byte[] a = new byte[5]; //创建一个名为a,长度为5的byte型一维数组。 2 3 int[] a = new int[5] {1, 2, 3, 4, 5}; //也可以采用初始化方式同时给赋值。 4 5 double[,] d = new double[2, 3]; //建立二维数组 6 7 double[,] d = new double[,] { {2,2}, {3,3}, {4,4}, {5,5} }; //声明一个4行2列的二维数组并赋值
多维数组
1 int[, ,] s = new int[3, 3, 3]; 2 for (int i = 0; i < 3; i++) //通过三个for循环对该三维数组进行赋值 3 { 4 for (int j = 0; j < 3; j++) 5 { 6 for (int m = 0; m < 3; m++) 7 { 8 s[i, j, m] = i + j + m; 9 } 10 } 11 } 12 foreach (int k in s) //用foreach循环输出数组中的所有元素导控制台显示 13 { 14 Console.Write(k.ToString() + " "); 15 } 16 Console.ReadKey();
动态数组
3、动态数组
ArrayList类包含在System.Collections 命名空间中。
Capacity:获取或设置 ArrayList 所包含的元素数。
Count:获取 ArrayList 所包含的实际元素数。
Add():将对象添加到 ArrayList 的结尾处。
Clear():从 ArrayList 中移除所有元素。
Contains():确定某元素是否在 ArrayList 中。
Insert():将对象插入到 ArrayList 的指定索引处。
RemoveAt():移除 ArrayList 的指定索引处的元素。
Reverse():将指定范围内元素的顺序反转。
Sort():用指定的比较器对 ArrayList 某个范围内的元素进行排序。
1 ArrayList a1 = new ArrayList(); 2 //向ArrayList 结尾处添加4种不同类型的对象 3 a1.Add(0.05f); 4 a1.Add("sss"); 5 a1.Add('s'); 6 a1.Add(3); 7 Console.WriteLine("当前ArrayList 里的全部元素如下:"); 8 for (int i = 0; i < 4; i++) 9 { 10 Console.Write(a1[i] + " "); 11 } 12 Console.WriteLine(" 当前 ArrayList 里的元素个数共有:"); 13 Console.WriteLine(a1.Count); 14 a1.Insert(1, "aaa"); //在ArrayList 索引值为1处添加字符串aaa 15 for (int i = 0; i < 5; i++) 16 { 17 Console.Write(a1[i] + " "); 18 } 19 Console.WriteLine(" 倒序后当前ArrayList 里的全部元素如下:"); 20 a1.Reverse(); 21 for (int i = 0; i < 5; i++) 22 { 23 Console.Write(a1[i] + " "); 24 } 25 Console.WriteLine(" 删除后当前ArrayList 里的全部元素如下:"); 26 a1.RemoveAt(2); 27 for (int i = 0; i < 4; i++) 28 { 29 Console.Write(a1[i] + " "); 30 } 31 Console.ReadKey();
2017-11-04 11:52:19
2017-11-06 11:39:26
数组去重
1 int[] x = new int[] { 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 2, 2, 2, 2, 8, 8, 8, 8, 8, 8 }; 2 3 int[] i = x.Distinct().ToArray(); 4 5 //for (int k = i.Length - 1; k >= 0; k--) 6 //{ 7 // Console.WriteLine(i[k]); 8 //} 9 foreach (int j in i) 10 { 11 Console.WriteLine(j); 12 } 13 14 15 16 Console.ReadLine();
注释掉的是另外一种方式,不过个人喜欢遍历的方式输出,理解起来简单
2017-11-06 11:41:26