• 记忆中的C#那些基础之数组(上)(此文适合于新手,高手就请绕道)


      很久都没写笔记了,前段时间由于工作再加上杂七杂八的事情一直没时间写,也没心情写,这段时间空下来了,有时间了,写点简单的吧,此文适合于新手,高手就请绕道。

      吐槽完毕,正文开始:

    一.  数组的声明    

    int[] myArray

    二.  数组的初始化

      使用new指定数组中的元素和数量来来初始化数组的变量     

    myArray = new int[4];

      在声明和初始化数组后,变量myArray就引用了4个整型值,它们位于托管堆上,在指定了数组大小后,如果不复制数组中的所有元素,就不能重新设置数组的大小。

      

       除了在两个语句中声明数组外,还可以在一条语句中声明数组  

     int[] myArray = new int[4];

      还可以用数组初始化器为每个元素赋值:

    int[] myArray = new int[4]{23,5,6,18};

      使用花括号还可以不用指定数组的大小,编译器会自动统计数组的个数:       

    string[] strName = new string[]{“limits”,”fly”,”studion”};

      还可以用下面简化方式进行数组声明:     

     string[] strName = {“limits”,”fly”,”studion”};

    三.  访问数组元素

      在声明和初始化数组后,就可以使用索引器访问数组的元素了,数组只支持整型参数的索引器。通过索引器传递元素编号,就可以访问数组;索引器是从0开始计数的,表示第一个数组元素,可以传递给索引器的的最大值是元素个数减1,因为索引是从0开始的。注:如果使用错误的索引器值(不存在的对应元素),就会抛出IndexOutOfRangeException类型的异常。

     //初始化数组
    
     int[] arrNumber = new int[] { 2, 4, 6, 8, 10, 12 };
    
     //使用索引器访问第二个元素
    
    int arr1 = arrNumber[1];

                 不知道数组元素的个数,可以在for语句中使用Length属性来获取每个元素:

    int[] arrNumber = new int[] { 2, 4, 6, 8, 10, 12 };
    
    for (int i = 0; i < arrNumber.Length; i++)
    {
        Console.WriteLine(arrNumber[i]);
    }        

                       另外一种方法是使用 foreach来读取每个数组元素,效果跟for语句一样:

    int[] arrNumber = new int[] { 2, 4, 6, 8, 10, 12 };
    foreach (int item in arrNumber)
    {
    
         Console.WriteLine(item);
    
    }

    四.  使用引用类型

      除了声明预定义类型的数组外,还可以声明自定义类型的数组:

       class Program
        {
            public class Student
            { 
                //学生姓名的两个自动属性
                public string firstName
                {
                    get;
                    set;
                }
    
                public string lastName
                {
                    get;
                    set;
                }
    
                //重写ToString()方法
                public override string ToString()
                {
                    return string.Format("{0},{1}", firstName, lastName);
                }
            }
    
            static void Main(string[] args)
            {
                //声明一个包含3个Student元素的数组
                Student[] student = new Student[3];
                student[0] = new Student { firstName = "Lim", lastName = "Deng" };
                student[1] = new Student { firstName = "Yuchun", lastName = "Xiang" };
                student[2] = new Student { firstName = "Pengfei", lastName = "Lai" };
    
                //使用 foreach语句读出每个Student元素
                foreach (var item in student)
                {
                    Console.WriteLine(item);
                }
        }

    结果如下图:

      从上面例子可以看出Student是存储在栈上的一个变量,改变量引用了存储在托管堆上的Student元素对应的数组,这个数组足够存放3个引用空间,数组中的每一个项都引用了Student对象,而这些Student对象都存储在托管堆上。

    作者:大龄码农老邓
    出处:http://limits.cnblogs.com
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接
    如有问题,可以通过  limitswpf#163.com  联系我,非常感谢。

  • 相关阅读:
    第18章 检测点模型
    第17章 发现过拟合和欠拟合
    第16章 学习速率调度器
    第15章 MiniVGGNet:更深的CNNs
    第14章 LeNet:识别手写数字
    第13章保存和加载你的模型
    第12章 训练你的第一个CNN
    Vue.js
    python3第一天
    R+JAVA 中文乱码问题
  • 原文地址:https://www.cnblogs.com/limits/p/2591689.html
Copyright © 2020-2023  润新知