zoukankan      html  css  js  c++  java
  • C#(六)基础篇—数组

    C#

    本随笔为个人复习巩固知识用,多从书上总结与理解归纳得来,如有错误麻烦指正

    数据简单来说就是将一连串相同类型的的数据按顺序保存起来的容器。数组中的数值类型默认为0,引用类型默认为null。数组的索引从0开始,具有n个元素的数组的缩影为从0~n-1。

     1.数组的创建

    //声明一个用于存储int类型的一维数组并赋值
                int[] array1 = new int[2];
                array1[0] = 1;
                array1[1] = 2;
    
                //声明同时赋值
    
                int[] array2 = new int[] { 1, 9, 5, 7, 3 };
    
                //另一种声明方式
                int[] array3 = { 1, 2, 3, 4, 5, 6 };
    
    
    
                //声明二维数组
                int[,] multiArray = new int[2, 3];
                multiArray[0, 0] = 1;
                multiArray[0, 1] = 2;
    
                //声明同时赋值
                int[,] multiArray2 = { { 1, 2, 3 }, { 4, 5, 6 } };

    2.数组的遍历

    数组是从抽象类array派生的引用类型。由于此类型实现类IEnumerable接口的IEnumerator,因此可以对C#中所有数组使用foreach迭(die)代。

    打字的时候还有些字打不出来(一直以来都读错了),我的输入法可以用分号+x的形式开手写,遇到一些情况可以考虑一下。

    int[] array = new int[] { 1, 2, 3, 4, 5 };
                //用for遍历
                for(int i = 0; i < 5; i++)
                {
                    Console.WriteLine(array[i]);
                }
                //用foreach遍历
                foreach(int n in array)
                {
                    Console.WriteLine(array[n]);
                }

    3.迭代器

    除了普通的数组,很多操作数组的泛型类都支持foreach,比如List,Dictionary等,除此之外我们也可以对任何自定义的类型使用foreach,前提是继承了IEnumerable接口(这个接口有泛型和非泛型两版本)。

    非泛型接口的GetEknumerator示例

    class IntList : System.Collections.IEnumerable
        {
            int[] numbers = null;   //foreach遍历的数组
            public int this[int index]   //索引器
            {
                get { return numbers[index]; }
                set { numbers[index] = value; }
            }
            public int Length { get { return numbers.Length; } }
    
            public IntList(int length)
            {
                numbers = new int[length];
            }
    
            public System.Collections.IEnumerator GetEnumerator()   //重写接口方法
            {
                return numbers.GetEnumerator();
            }
    
        }
    
    
        class Program
        {
            static void Main(string[] args)
            {
    
                IntList list = new IntList(10);   //实例化
                for(int i = 0; i < 10; i++)
                {
                    list[i] = i;     //赋值0~9
    
                }
                foreach(var n in list)    //foreach循环
                {
                    Console.WriteLine(n);   //输出0~9
                }
    
    
    
    
    
            }
        }

    4.var

    在后面一个foreach循环中使用到了var,我的参考书中并没有说明,在学习了解后,找到相关说明

    var:根据所赋值数据推断出类型

    var v1=1;     //int

    var v2="2";    //string

    var v3='3';     //char

    var v4=true;   //bool

    在unity中,可以通过对迭代器的运用实现类似异步的效果,之后会另开篇章说一下。

  • 相关阅读:
    Flask【第11篇】:整合Flask中的目录结构
    GIMP简介
    java 二进制数字符串转换工具类
    Linux nohup 命令
    Linux & 命令
    linux 下检查java jar包 程序是否正常 shell
    linux 下启动java jar包 shell
    linux 下停止java jar包 shell
    shell 中的特殊变量
    maven settings 配置文件
  • 原文地址:https://www.cnblogs.com/zzuadj/p/14096087.html
Copyright © 2011-2022 走看看