C#数组 修改

今天咱们了解下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

原文地址:https://www.cnblogs.com/TheJoker/p/7778849.html