c#发展

首页 » 常识 » 诊断 » C入门之路03数组们
TUhjnbcbe - 2020/12/31 20:01:00
北京中科高效抗白个性施术         https://hn.qq.com/a/20161116/037913.htm

前言

以前的文章中提到过C#的数据类型,也就是int,char那些数据类型,说过数据类型就是数据的种类,那么今天要讲的第一个数据结构就是数据的组织工具,数据结构说到底就是容器,用来装数据,将数据装好使用,数据结构最重要的四个功能,增删改查,即增加数据,删除数据,改变数据,查找数据,每个语言都需要有自己的数据结构,最近同时学C++和C#,只用了几天的C++,个人感觉C++还是难,数据结构很乱,用惯了C#的数据结构用C++感觉好多功能C++都没有,如果只是做游戏,还是建议学一些封装度高的语言,但是想进大厂,还是必须学C++,废话多是我一贯的写作习惯,大家习惯就好,那么入正题,来讲C#的第一个数据结构------数组

1

数组定义

1数组是多个相同类型数据的组合,实现对这些数据的统一管理。

2数组是引用类型,数据是值类型还是引用类型,很重要,在学习生涯中一定要掌握。

3值类型和引用类型在第一篇文章中讲过,这里接着拿出来这个图片,让大家知道数组的位置,现在需要了解的是,引用类型作为函数参数的时候,函数对这个数据操作会影响这个数据的值。

4数组中的元素可以是任何数据类型,包括基本类型和引用类型

上图:

2

初始化方法

那么怎么声明一个数组呢

type[]var;type是数据类型,可以是任何类型。声明一个数组不会在内存中初始化数组。当初始化数组变量时,您可以赋值给数组。这一句只是在栈上分配一个空间存放var,var是一个指向堆的地址。只有new的时候才会分配数组空间double[]balance=newdouble[10];这就是声明长度为10的数组,因为装的是double,所以在堆上分配8字节乘以10等于80字节的长度(看不懂没关系,以后回来看就明白了)初始数字装0.也可以在此时赋值int[]marks=newint[5]{99,98,92,97,95};

3

修改元素

marks[0]=12;数组不能动态扩容,大小在声明的时候定下,所以不存在增加,删除元素,都是修改元素,这句代码就是把marks[0]改成12的意思(原来是0)但是[]里面是数字不能越界,一个长度为n的数组,[]里是数字应该大于等于0小于等于n-1;n可以由marks.Length得到Length是属性这也是我觉得C#好的地方,长度是属性,比较人性化,C++就得调用方法。

4

遍历元素

想要访问数组中的每一个元素的方法有两种1上篇文章讲的for循环int[]TurBoQ=newint[10];for(inti=0;in;i++){Debug.Log(TurBoQ);}2C#的foreach这是我个人非常喜欢的C#语法,用习惯了很舒服foreach(intiinTurBoQ){Debug.Log(i);}就像说话一样,遍历每个int类型的数据在TurBoQ中,C#舒服的地方是每个数据结构都可以使用foreach来遍历,只需要把int改成特定的数据类型就行了。

5

C#多维数组

C#对应C++的二维数据有两种,一种是多维数组,一种是交错数组多维数组是把改成,中间加几个逗号就是几维数组,后面的{}里面第几层就是第几维

int[,]a={{1,2,5},{3,4,0},{5,6,7}};这就是二维数组第一维就是装{1,2,5}这个维度长度由a.GetLength(0)取到第二维就是1,2,5长度用a.GetLength(1)取到

6

C#交错数组

int[][]t=newint[3][];t[0]=newint[2];t[1]=newint[4];t[2]=newint[3];和多维数组的区别是第二维的长度不需要一定,可以是2,4,3具体使用看自己情况第一维的可以用t.Length取到第二维可以用t.Length取到

7

重要的类Array

Array是处理数组的类,里面的很多方法我们会用到

使用的时候这样int[]TurBoQ;Array.Clear(TurBoQ);1Clear根据元素的类型,设置数组中某个范围的元素为零、为false或者为null。2Copy(Array,Array,Int32)从数组的第一个元素开始复制某个范围的元素到另一个数组的第一个元素位置。长度由一个32位整数指定。3CopyTo(Array,Int32)从当前的一维数组中复制所有的元素到一个指定的一维数组的指定索引位置。索引由一个32位整数指定。4GetLength获取一个32位整数,该值表示指定维度的数组中的元素总数。5GetLongLength获取一个64位整数,该值表示指定维度的数组中的元素总数。6GetLowerBound获取数组中指定维度的下界。7GetType获取当前实例的类型。从对象(Object)继承。8GetUpperBound获取数组中指定维度的上界。9GetValue(Int32)获取一维数组中指定位置的值。索引由一个32位整数指定。10IndexOf(Array,Object)搜索指定的对象,返回整个一维数组中第一次出现的索引。11Reverse(Array)逆转整个一维数组中元素的顺序。12SetValue(Object,Int32)给一维数组中指定位置的元素设置值。索引由一个32位整数指定。13Sort(Array)使用数组的每个元素的IComparable实现来排序整个一维数组中的元素。14ToString返回一个表示当前对象的字符串。从对象(Object)继承。

Over!

注:号主正在努力建设账号中,期间大家如果喜欢,可以点赞,收藏,转发,是对作者最大的鼓励了,提前谢谢大家!

1
查看完整版本: C入门之路03数组们