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 型数组才可以用这个函数

C#基础—数组的更多相关文章

  1. 【搬砖】安卓入门(4)- Java开发编程基础--数组

    05.01_Java语言基础(数组概述和定义格式说明)(了解) A:为什么要有数组(容器) 为了存储同种数据类型的多个值 B:数组概念 数组是存储同一种数据类型多个元素的集合.也可以看成是一个容器. ...

  2. PHP基础 数组函数 的总结

    <?php /** * PHP基础 数组操作函数 * * 指针函数:[类似于数据库的游标] 见例1.1 * current($arr)/pos 返回当前指针指向的元素 * key($arr) 返 ...

  3. Java基础——数组应用之StringBuilder类和StringBuffer类

    接上文:Java基础——数组应用之字符串String类 一.StringBuffer类 StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和 ...

  4. java基础-数组的折半查找原理

    java基础-数组的折半查找原理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 如果让你写一个数组的查找功能,需求如下:在一个数组中,找一个元素,是否存在于数组中, 如果存在就返回 ...

  5. Java基础-数组常见排序方式

    Java基础-数组常见排序方式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 数据的排序一般都是生序排序,即元素从小到大排列.常见的有两种排序方式:选择排序和冒泡排序.选择排序的特 ...

  6. day05<Java语言基础--数组>

    Java语言基础(数组概述和定义格式说明) Java语言基础(数组的初始化动态初始化) Java语言基础(Java中的内存分配以及栈和堆的区别) Java语言基础(数组的内存图解1一个数组) Java ...

  7. Java语言基础(数组)

    Java语言基础(数组概述和定义格式说明) A:为什么要有数组(容器) 为了存储同种数据类型的多个值 B:数组概念 数组是存储同一种数据类型多个元素的集合.也可以看成是一个容器. 数组既可以存储基本数 ...

  8. 算法与数据结构基础 - 数组(Array)

    数组基础 数组是最基础的数据结构,特点是O(1)时间读取任意下标元素,经常应用于排序(Sort).双指针(Two Pointers).二分查找(Binary Search).动态规划(DP)等算法.顺 ...

  9. Java编程基础——数组和二维数组

    Java编程基础——数组和二维数组 摘要:本文主要对数组和二维数组进行简要介绍. 数组 定义 数组可以理解成保存一组数的容器,而变量可以理解为保存一个数的容器. 数组是一种引用类型,用于保存一组相同类 ...

  10. 《Java基础——数组的定义与使用》

    Java基础--数组的定义与使用       一. 一维数组: 格式一: 数组类型 数组变量[]=new 数据类型[长度]; //需要后续赋值,且后续赋值时只能为单个元素赋值. 或 数组类型 数组变量 ...

随机推荐

  1. Shell 逐行读取文件的4中方法

    方法1:while循环中执行效率最高,最常用的方法. function while_read_LINE_bottm(){ While read LINE do echo $LINE done < ...

  2. 如何优雅地执行dubbo"单测"

    很多小伙伴所在的公司是基于Dubbo来构建技术栈的,日常开发中必不可少要写dubbo单测(单元测试),如果单测数据依赖已有的外部dubbo服务,一般是mock数据,如果数据比较复杂,其实mock数据也 ...

  3. java 查找数组中最接近的一个数字

    public static Integer getNumberThree(Integer[] intarray,Integer number){ int index = Math.abs(number ...

  4. TortoiseGit用户名密码的更换方法介绍

    http://www.downza.cn/xy/53171.html 有时候因实际需求要更换TortoiseGit用户名密码,怎么办呢?下文就是TortoiseGit用户名密码的更换方法介绍,一起看看 ...

  5. springboot装配OkHttp组件

    在SpringBoot应用中,发送Http通常我们使用RestTemplate,但有部分组件底层是使用OkHttp进行Http的操作,而且OKHttp也是一个很优秀的HTTP组件. RestTempa ...

  6. CentOS7下安装ELK(nginx 、elasticsearch-5.1.1、logstash-5.1.1、kibana-5.1.1)

    nginx: #直接yum安装: [root@elk-node1 ~]# yum install nginx -y 官方文档:http://nginx.org/en/docs/http/ngx_htt ...

  7. linux压缩 zip和unzip

    .把/home目录下面的mydata目录压缩为mydata.zip zip -r mydata.zip mydata #压缩mydata目录 .把/home目录下面的mydata.zip解压到myda ...

  8. C# 动态创建EXE

    1.创建项目SaveExe或者修改代码中SaveExe名字为自己的项目 2.添加按钮调用CreateCodeEXE,即可实现编译生成一个新的exe即 复制了自身的exe生成一个新的exe(目的就是新生 ...

  9. 【翻译】FlinkCEP-Flink的复杂事件处理

    本文翻译自官网:FlinkCEP - Complex event processing for Flink FlinkCEP是在Flink之上实现的复杂事件处理(CEP)库. 它使您可以检测无穷无尽的 ...

  10. Hadoop源码解读系列目录

    Hadoop源码解读系列 1.hadoop源码|common模块-configuration详解2.hadoop源码|core模块-序列化与压缩详解3.hadoop源码|core模块-远程调用与NIO ...