VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 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中,可以通过对迭代器的运用实现类似异步的效果,之后会另开篇章说一下。

 


相关教程