1.数组

CSharp 的数组从 0 开始

声明数组时 "[ ]"放在类型名的后面,而不能放在标示符的后面,放在标示符的后面是别一种语法

如 int[] table  而不是  int table[]

另一细节是数组的大小不是其类型的一部分,而在C语言中数组的大小确是数组类型的一部分,可以声明一个数组

关为它分配 int (觉得这里好像说的不对,应该是"类型")  对象的任意数组, 不管长度如何

如:

int[] table;

table=new int[10];

table=new int[20];

table= new int[30];

现在的 table 是有 30 个元素了

数组可以声明为一维,二维,交错数组,如

int[] num=new int[10];                   //声明一个一维数组

int[,] num2=new int[4,5];                //声明一个二维数组

int[][] num3=new int[3];                   //声明一个交错的数组

for (int x=0;x<num3.Length;x++)

{

num3[x]=new int[4];             //相当于声明的一个 [3,4] 的数组

}

还可以有更大的数组。例如,可以有三维的矩形数组:

甚至可以将矩形数组和交错数组混合使用。例如,下面的代码声明了类型为 int 的二维数组的三维数组的一维数组。

数组的初始化

数组初始化时可以 int[] num=new int[4]{1,2,3,4}

此处注意的是初始化的元素个数得和指定 int[4] 保存一至,否则会出错

初始化数组
C# 通过将初始值括在大括号 ({}) 内为在声明时初始化数组提供了简单而直接了当的方法。下面的示例展示初始化不同类型的数组的各种方法。

注意 如果在声明时没有初始化数组,则数组成员将自动初始化为该数组类型的默认初始值。另外,如果将数组声明为某类型的字段,则当实例化该类型时它将被设置为默认值 null。
一维数组
int[] numbers = new int[5] {1, 2, 3, 4, 5};
string[] names = new string[3] {"Matt", "Joanne", "Robert"};
可省略数组的大小,如下所示:

int[] numbers = new int[] {1, 2, 3, 4, 5};
string[] names = new string[] {"Matt", "Joanne", "Robert"};
如果提供了初始值设定项,则还可以省略 new 运算符,如下所示:

int[] numbers = {1, 2, 3, 4, 5};
string[] names = {"Matt", "Joanne", "Robert"};
多维数组
int[,] numbers = new int[3, 2] { {1, 2}, {3, 4}, {5, 6} };
string[,] siblings = new string[2, 2] { {"Mike","Amy"}, {"Mary","Albert"} };
可省略数组的大小,如下所示:

int[,] numbers = new int[,] { {1, 2}, {3, 4}, {5, 6} };
string[,] siblings = new string[,] { {"Mike","Amy"}, {"Mary","Albert"} };
如果提供了初始值设定项,则还可以省略 new 运算符,如下所示:

int[,] numbers = { {1, 2}, {3, 4}, {5, 6} };
string[,] siblings = { {"Mike", "Amy"}, {"Mary", "Albert"} };
交错的数组(数组的数组)
可以像下例所示那样初始化交错的数组:

int[][] numbers = new int[2][] { new int[] {2,3,4}, new int[] {5,6,7,8,9} };
可省略第一个数组的大小,如下所示:

int[][] numbers = new int[][] { new int[] {2,3,4}, new int[] {5,6,7,8,9} };
-或-

int[][] numbers = { new int[] {2,3,4}, new int[] {5,6,7,8,9} };
请注意,对于交错数组的元素没有初始化语法。

访问数组成员
访问数组成员可以直接进行,类似于在 C/C++ 中访问数组成员。例如,下面的代码创建一个名为 numbers 的数组,然后向该数组的第五个元素赋以 5:

int[] numbers = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0};
numbers[4] = 5;
下面的代码声明一个多维数组,并向位于 [1, 1] 的成员赋以 5:

int[,] numbers = { {1, 2}, {3, 4}, {5, 6}, {7, 8}, {9, 10} };
numbers[1, 1] = 5;
下面声明一个一维交错数组,它包含两个元素。第一个元素是两个整数的数组,第二个元素是三个整数的数组:

int[][] numbers = new int[][] { new int[] {1, 2}, new int[] {3, 4, 5}
};
下面的语句向第一个数组的第一个元素赋以 58,向第二个数组的第二个元素赋以 667:

numbers[0][0] = 58;
numbers[1][1] = 667;
数组是对象
在 C# 中,数组实际上是对象。System.Array 是所有数组类型的抽象基类型。可以使用 System.Array 具有的属性以及其他类成员。这种用法的一个示例是使用“长度”(Length) 属性获取数组的长度。下面的代码将 numbers 数组的长度(为 5)赋给名为 LengthOfNumbers 的变量:

int[] numbers = {1, 2, 3, 4, 5};
int LengthOfNumbers = numbers.Length;
System.Array 类提供许多有用的其他方法/属性,如用于排序、搜索和复制数组的方法。

对数组使用 foreach
C# 还提供 foreach 语句。该语句提供一种简单、明了的方法来循环访问数组的元素。例如,下面的代码创建一个名为 numbers 的数组,并用 foreach 语句循环访问该数组:

int[] numbers = {4, 5, 6, 1, 2, 3, -2, -1, 0};
foreach (int i in numbers)
{
System.Console.WriteLine(i);
}
由于有了多维数组,可以使用相同方法来循环访问元素,例如:

int[,] numbers = new int[3, 2] {{9, 99}, {3, 33}, {5, 55}};
foreach(int i in numbers)
{
Console.Write("{0} ", i);
}
该示例的输出为:

9 99 3 33 5 55
不过,由于有了多维数组,使用嵌套 for 循环将使您可以更好地控制数组元素。

CSharp 基本知识-数组相关推荐

  1. C语言基础知识-数组和字符串

    C语言基础知识-数组和字符串 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数组概述 在程序设计中,为了方便处理数据把具有相同类型的若干变量按有序形式组织起来的方式我们称为数组 ...

  2. php数组及解析,PHP基本知识(数组解析)

    PHP基本知识(数组解析) 知识点: 回顾: 1 字符串函数: strlen(); 返回字符串长度 strpos(); 返回字符在字符串中第一次出现的位置. substr(); 返回 截取 字符串 s ...

  3. citra 图形设置_「图形化编程」前导知识-数组(四)

    在前三节的教程里, 暴王:「图形化编程」前导知识-数组(一)​zhuanlan.zhihu.com 暴王:「图形化编程」前导知识-数组(二)​zhuanlan.zhihu.com 暴王:「图形化编程」 ...

  4. Java进阶知识-数组类型

    前言 本来数组类型应该属于基础部分的知识,我将它写在进阶部分是因为数组既可以是基础数据类型数组,也可以是引用数据类型数组.所以我想先介绍完类与对象的基础之后,再给大家介绍数组.于是,今天这篇内容给大家 ...

  5. CSharp中的数组和ArrayList及List

    C# 中的数组.ArrayList.List 数组 数组被大部分的语言支持,操作都类似. 如 // 创建 string [] strLanguages = new string[5]; // 赋值 s ...

  6. PHP 基础知识-数组

    PHP 的数组主要分为: 索引数组 - 带有数字索引的数组 关联数组 - 带有指定键的数组 多维数组 - 包含一个或多个数组的数组 索引数组: 有两种创建索引数组的方法: 索引是自动分配的(索引从 0 ...

  7. 有十五个数按由大到小顺序存放在一个数组中_「图形化编程」前导知识-数组(一)...

    今天我们来学习一个新的概念-数组.这节课将通过一个小程序讲解数组的基本概念-数组的长度和下标 定义 数组指的是有序元素的集合,数组中的每个元素具有相同的类型,按照顺序排列的形式组织在一起.我们可以把数 ...

  8. 记前端知识--数组元素的相关操作

    数组中元素的操作 const arr = [1, 2, 3, 4]; this.removeByValue(4); console.log(arr); // [1, 2, 3] this.addByV ...

  9. java 基础知识-数组的7种算法(排序、求和、最值、遍历...)

    遍历 遍历就是把这个数组的每个元素 显示出来 遍历的方法就是先定义这个数组的大小,然后用FOR循环来完成数组,例如 double[] score = new double[5];Scanner inp ...

最新文章

  1. 面试官灵魂的一击:你懂MySQL事务吗?
  2. 最大公共子序列、子串、可重叠重复子串
  3. 让我们来开发一种更类似人脑的神经网络吧(三)
  4. MySQL statefulset_Kubernetes进阶之StatefulSet有状态部署
  5. 研究.jpg图片马赛克问题
  6. 日照油库系统推荐_数据中心很重要,消防防范更重要——七氟丙烷气体灭火系统...
  7. 使用模板部署的Linux虚拟机网卡不可用的处理方法
  8. DOS批处理高级教程:第七章 DOS批处理编程高级技巧(转)
  9. WinRAR去广告:只需六步,教你去除WinRAR的广告
  10. C++ setw() 函数
  11. 服务器 iis ftp配置文件,如何:在 IIS 中创建和配置 FTP 站点
  12. android 代码中切换输入法,在Android系统中切换输入法的相关教程
  13. SpringBoot版本GA,SNAPSHOT,PRE的的含义
  14. 【AviUtl】动画效果,简易Glitch++(派生),学习笔记
  15. 贝叶斯 - 《贝叶斯统计》笔记
  16. 源于旗舰大厂的设计艺术——飞利浦Fidelio L3简评
  17. 大厂转身,小米数字化采购缘何成功?| 爱分析调研
  18. 用python将多张图片拼接成一张
  19. html怎么做一个心形边框,使用CSS获取心形边框?
  20. 前端接口报错431解决办法

热门文章

  1. 北航和北理工计算机专业哪个好,北理和北航哪个好?
  2. 互联网圈子,黄进磊竟然把它解释的如此霸气!
  3. android app耗电分析方法
  4. Python带_的变量或函数命名,带下划线的方法
  5. 使用 eBPF 和 XDP 高速处理数据包
  6. JQuery使用及基础原理解析相关笔记(三)
  7. 微信小程序图片等比缩放显示正中间
  8. 达梦使用powerdesigner生成er模型图
  9. cdh hive配置mysql_Hive学习(CDH版Hadoop、Hive安装)
  10. 案例21:Java农产品供求信息系统设计与实现开题报告