C#之数组
什么是数组?
数组是一种数据结构,包含同一个类型的多个元素。
数组的声明:
int[] myIntArray;
注:声明数组时,方括号 ([]) 必须跟在类型后面,而不是变量名后面。在 C# 中,将方括号放在变量名后是不合法的语法。
数组的初始化:
我们知道数组是引用类型,所以需要给他分配堆上的内存。
1.myIntArray = new int[3];
2.myIntArray = new int[] { 1, 2, 3 };
3.int[] myIntArray = { 1, 2, 3 }; //当使用这种方法对数组进行初始化时,只能在声明变量数组时使用,不能在声明数组之后使用。
数组的访问:
数组在声明和初始化后,可以使用索引器进行访问,索引器总是以0开头,表示第一个元素。
int[] myIntArray = { 1, 2, 3 };
Console.WriteLine("intValue = {0}", myIntArray[0]);
Console.Read();
结果为:intValue = 1
数组的类型:
1.多维数组:
一般的数组(也称一维数组)用一个整数来索引,多维数组用两个或多个整数来索引。

static void Main(string[] args)
{
//声明一个二维数组 两行三列
int[,] myIntArray1;
myIntArray1 = new int[2, 3];
myIntArray1[0, 0] = 1;
myIntArray1[0, 1] = 11;
myIntArray1[0, 2] = 111;
myIntArray1[1, 0] = 2;
myIntArray1[1, 1] = 22;
myIntArray1[1, 2] = 222;
Console.WriteLine("{0},{1},{2}", myIntArray1[0, 0], myIntArray1[0, 1], myIntArray1[0, 2]);
Console.WriteLine("{0},{1},{2}", myIntArray1[1, 0], myIntArray1[1, 1], myIntArray1[1, 2]);
Console.Read();
}

结果为:

static void Main(string[] args)
{
//声明一个二维数组 三行三列
int[,] myIntArray2;
myIntArray2 = new int[,] { { 1, 11, 111 }, { 2, 22, 222 }, { 3, 33, 333 }, { 4, 44, 444 } }; Console.WriteLine("{0},{1},{2}", myIntArray2[0, 0], myIntArray2[0, 1], myIntArray2[0, 2]);
Console.WriteLine("{0},{1},{2}", myIntArray2[1, 0], myIntArray2[1, 1], myIntArray2[1, 2]);
Console.WriteLine("{0},{1},{2}", myIntArray2[2, 0], myIntArray2[2, 1], myIntArray2[2, 2]);
Console.WriteLine("{0},{1},{2}", myIntArray2[3, 0], myIntArray2[3, 1], myIntArray2[3, 2]);
Console.Read();
}

结果为:

static void Main(string[] args)
{
//声明一个三维数组 三行三列
int[, ,] myIntArray3;
myIntArray3 = new int[,,] { { {1,1}, {11,11}, {111,111} },
{ {2,2}, {22,22}, {222,222} },
{ {3,3}, {33,33}, {333,333} },
{ {4,4}, {44,44}, {444,444} }
}; Console.WriteLine("{0},{1},{2},{3},{4},{5}", myIntArray3[0, 0, 0], myIntArray3[0, 0, 1], myIntArray3[0, 1, 0], myIntArray3[0, 1, 1],
myIntArray3[0, 2, 0], myIntArray3[0, 2, 1]);
Console.WriteLine("{0},{1},{2},{3},{4},{5}", myIntArray3[1, 0, 0], myIntArray3[1, 0, 1], myIntArray3[1, 1, 0], myIntArray3[1, 1, 1],
myIntArray3[1, 2, 0], myIntArray3[1, 2, 1]);
Console.WriteLine("{0},{1},{2},{3},{4},{5}", myIntArray3[2, 0, 0], myIntArray3[2, 0, 1], myIntArray3[2, 1, 0], myIntArray3[2, 1, 1],
myIntArray3[2, 2, 0], myIntArray3[2, 2, 1]);
Console.WriteLine("{0},{1},{2},{3},{4},{5}", myIntArray3[3, 0, 0], myIntArray3[3, 0, 1], myIntArray3[3, 1, 0], myIntArray3[3, 1, 1],
myIntArray3[3, 2, 0], myIntArray3[3, 2, 1]);
Console.Read();
}

结果为:
2.锯齿数组:
一般多维数组的大小是矩形的,而锯齿数组的大小比较灵活,每一行都可以有不同的大小。
在初始化锯齿数组时,先设置该数组包含的行数。定义各行中元素个数的第二个括号设置为空,因为这类数组的每一行包含不同的元素数。

static void Main(string[] args)
{
//声明一个锯齿数组 三行
int[][] myIntArray4;
myIntArray4 = new int[3][]; myIntArray4[0] = new int[] { 1,11,111};
myIntArray4[1] = new int[2] { 2, 22 };
myIntArray4[2] = new int[] { 3,33,333,3333}; for (int i = 0; i < myIntArray4.Length; i++)
{
for (int j = 0; j < myIntArray4[i].Length; j++)
{
Console.WriteLine("{0}",myIntArray4[i][j]);
}
}
Console.Read();
}

结果为:
C#之数组的更多相关文章
- javascript中的Array对象 —— 数组的合并、转换、迭代、排序、堆栈
Array 是javascript中经常用到的数据类型.javascript 的数组其他语言中数组的最大的区别是其每个数组项都可以保存任何类型的数据.本文主要讨论javascript中数组的声明.转换 ...
- 探究javascript对象和数组的异同,及函数变量缓存技巧
javascript中最经典也最受非议的一句话就是:javascript中一切皆是对象.这篇重点要提到的,就是任何jser都不陌生的Object和Array. 有段时间曾经很诧异,到底两种数据类型用来 ...
- 编写高质量代码:改善Java程序的151个建议(第5章:数组和集合___建议75~78)
建议75:集合中的元素必须做到compareTo和equals同步 实现了Comparable接口的元素就可以排序,compareTo方法是Comparable接口要求必须实现的,它与equals方法 ...
- 了解PHP中的Array数组和foreach
1. 了解数组 PHP 中的数组实际上是一个有序映射.映射是一种把 values 关联到 keys 的类型.详细的解释可参见:PHP.net中的Array数组 . 2.例子:一般的数组 这里,我 ...
- JavaScript权威指南 - 数组
JavaScript数组是一种特殊类型的对象. JavaScript数组元素可以为任意类型,最大容纳232-1个元素. JavaScript数组是动态的,有新元素添加时,自动更新length属性. J ...
- JavaScript常见的五种数组去重的方式
▓▓▓▓▓▓ 大致介绍 JavaScript的数组去重问题在许多面试中都会遇到,现在做个总结 先来建立一个数组 var arr = [1,2,3,3,2,'我','我',34,'我的',NaN,NaN ...
- js:给定两个数组,如何判断他们的相对应下标的元素类型是一样的
题目: 给Array对象原型上添加一个sameStructureAs方法,该方法接收一个任意类型的参数,要求返回当前数组与传入参数数组(假定是)相对应下标的元素类型是否一致. 假设已经写好了Array ...
- javascript数组查重方法总结
文章参考地址:http://blog.csdn.net/chengxuyuan20100425/article/details/8497277 题目 对下列数组去重: var arr = ['aa', ...
- 掌握javascript中的最基础数据结构-----数组
这是一篇<数据结构与算法javascript描述>的读书笔记.主要梳理了关于数组的知识.部分内容及源码来自原作. 书中第一章介绍了如何配置javascript运行环境:javascript ...
- 小兔JS教程(四)-- 彻底攻略JS数组
在开始本章之前,先给出上一节的答案,参考答案地址: http://www.xiaotublog.com/demo.html?path=homework/03/index2 1.JS数组的三大特性 在J ...
随机推荐
- Heritrix源码分析(九) Heritrix的二次抓取以及如何让Heritrix抓取你不想抓取的URL
本博客属原创文章,欢迎转载!转载请务必注明出处:http://guoyunsky.iteye.com/blog/644396 本博客已迁移到本人独立博客: http://www.yun5u ...
- AJax学习一
1.Ajax的准备工作,就是要先准备好服务器环境. 这边可以有好几种方式,例如服务器工具: http://www.php100.com/html/plugin/ser/2013/0905/91.htm ...
- PHP中基本符号及使用方法
注解符号:这个#还真很少用,能和shell通用还真不错呢. //, # 单行注解多行注解 引号的使用 ' ' 单引号,没有任何意义,不经任何处理直接拿过来;" "双引号,php动 ...
- DB2死锁解决办法
db2 命令行,1.用管理员用户登录:db2 connect to 你的数据库名 user 用户名 using 密码 2.db2 "get snapshot for locks on 数据库 ...
- js四舍五入
7-13 向上取整ceil() 7-14 向下取整floor() 7-15 四舍五入round() 7-16 随机数 random()
- How do I list all tables/indices contained in an SQLite database
How do I list all tables/indices contained in an SQLite database If you are running the sqlite3 comm ...
- J2EE事务
一.J2EE 事务处理方式 1. 本地事务:紧密依赖于底层资源管理器(例如数据库连接 ),事务处理局限在当前事务资源内.此种事务处理方式不存在对应用服务器的依赖,因而部署灵活却无法支持多数据源的分布式 ...
- C++容器和算法
转自:http://www.cnblogs.com/haiyupeter/archive/2012/07/29/2613145.html 容器:某一类型数据的集合. C++标准顺序容器包括:vecto ...
- selenium python (十二)下拉框的处理
#!/usr/bin/python# -*- coding: utf-8 -*-__author__ = 'zuoanvip' #下拉框在web页面上非常常见,对于下拉框的处理采用二次定位的方法进行元 ...
- ajax连接池和XMLHttpRequest
连接池 我们公司在路由和交换机web界面和后端交互全部采用的是自己封装的ajax组件完成的,组件有点老了,代码风格和其中的某些用法现在看起来都有点不习惯.今天把这个组件的核心部分的ajax连接池记录下 ...