• 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

  • 相关阅读:
    [转载] CSS模块化【封装继承多态】
    【转】jquery图片播放插件Fancybox使用方法
    指定打印宽度,左&右对其
    预测编码与帧间压缩方法
    字符串
    静态变量 static
    利用getchar, putchar复制文件
    排序
    printf 语句
    Ubuntu 宽带连接
  • 原文地址:https://www.cnblogs.com/TheJoker/p/7778849.html
Copyright © 2020-2023  润新知