C#基础之数组

  1. 1.   数组的定义与初始化

一维数组:

(1)            int [] A = new int[4]{ 0,1,2,3};

(2)            int[] B = new int[4/变量];

(3)            int[] C = { 1, 2, 3, 4 };

(4)            int[] D;      D = new int[4] { 1, 2, 3, 4 };

注意:

(1)    int [] A 第一个[] 不能有行数限制,要在new里设置。

(2)    new 表示的是创建数组并初始化。Int型为0,bool型为false,引用类型为null

(3)    如上(4)不带new的简化定义,在初始化时必须带new。如:int[] D;       D ={ 1, 2, 3, 4 }; 是错误的。

多维数组:这里以二维数组为例  [,]  [, ,]

大多与一维数组相同,但注意要用{}表示一行,{}里表示几列(规模嵌套)

(1)    int [,] n1 = new int [3,2] {{1,2},{3,4},{5,6}};

(2)    int [,] n1 = new int [,] {{1,2},{3,4},{5,6}};

(3)    int [,] n1 = {{1,2},{3,4},{5,6}};

  1. 2.   数组的属性

(1)    数组的秩:即数组的维数。Int x=数组名.Rank;

(2)    数组的长度:即数组的元素个数 总长度:int a = 数组名.Length; 维数长度:int b =数组名.Length(维数序号); 维数序号从0开始

 

  1. 交错数组:交错数组相当于一维数组的每一个元素还是一个数组,这个数组的维数可以多维的,且每一个元素数组的规模可以是不一定的,这就在多维数组是数组的数组的基础上的约束。但是其维度是固定的。

一维:

(1)   Int [] [] n1=new int [2][]  //此处表明子数组是一维的

{

new int[] {1,3,5},   //第一个子数组的长度为3

new int[] {2,4,6,8,10},//第二个子数组的长度可以不同为5

};//注意此处的;号 和里面的new

(2)  Int [] [] n2=new int [][] {new int[] {1,3,5},  new int[]{2,4,6,8,10} }

(3)Int [] [] n3= {   new int[] {1,3,5},   new int[] {2,4,6,8,10} }

以上三种定义初始化方法等效

二维:

Int [] [,] n4 = new int [3] [,]

{

new int[,] {{1,2},{3,4}},

new int[,] {{1,2},{3,4},{5,6}},

new int[,] {{1,2},{3,4},{5,6},{7,8}},

};

//总结各种数组定义及初始化的格式

数据类型 【】格式(不加数字)数组名 = new 数据类型 【】格式(加数组){ 初始化值(按行列分组初始化)   }

  1. 4.   动态改变一维数组的大小

Array.ReSize(ref 要改变的数组名,调整后的大小);

//注意:这里的大小是数组长度,而不是内存大小!

若大小大于原数组大小,大于原大小,则将原数组的元素复制到新数组,其后的元素为自动默认值。若小于,则填满为止。若等于,则不进行操作。

  1. 5.   数组元素的排序与查找

排序:

(1)  升序:  Array.Sort(数组名);

(2)  降序:Array.Reverse(数组名);

查找:Array.Indexof(数组名,所查的元素(注意要与数组的类型相同));

//字符串的查找Indexof(indexOfAny) 是用实例调用  数组的IndexOf是用类调用

  1. 6.   数组元素的统计:用数组的实例调用函数
    1. 求平均值:数组名.Average();
    2. 求和:数组名.Sum();
    3. 求最大值:数组名.Max();
    4. 求最小值:数组名.Min();

注意(1)要在头文件中加入 Using System.Linq;

// 语言集成查询(英语:Language Integrated Query,缩写:LINQ),发音"link",是微软的一项技术,新增一种自然查询的SQL语法到.NET Framework的编程语言中,当前可支持C#以及Visual Basic .NET语言

(2)只用int 型数组才可以用这个函数

最新文章

  1. 基本数据结构(2)——算法导论(12)
  2. Nginx 配置支持C++
  3. android aidl 进程间通信需要注意的地方(android.os.TransactionTooLargeException)
  4. 慕课编程题JS选项卡切换
  5. 检测Linux VPS是Xen、OpenVZ还是KVM真假方法
  6. Res_Orders_02
  7. HTTP学习四:SPDY和HTTP/2.0
  8. 黑客攻防技术宝典Web实战篇(二)工具篇DVWA Web漏洞学习
  9. Linux 6.5網卡配置
  10. 同步推是如何给未越狱的IOS设备安装任意IPA的?
  11. 关于try和finaly 里面return的问题
  12. java事件处理
  13. Linux下Fork与Exec使用
  14. 最短路模板[spfa][dijkstra+堆优化][floyd]
  15. 一个forward_list C++primer
  16. 基于WebSocketSharp 的IM 简单实现
  17. JAVA常用集合
  18. JS 有趣的JS
  19. cmd 命令 添加端口
  20. [转]mybatis if test非空判断数字0为什么是false

热门文章

  1. 【BigData】Java基础_终端输入2个数字并求和
  2. srs安装与ffmpeg推流
  3. html5 input number类型使用整理
  4. 【mybatis源码学习】缓存机制
  5. IDEA 如何导出 todo 列表
  6. 019 spring social
  7. 二代身份Zheng复印(手机正反面拍照生成1:1复印件图像)
  8. [问题解决]Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock
  9. mac node配置path
  10. elasticsearch中mapping的_source和store的笔记(转)