数组即是一组相同类型组合在一起,使用一个通用的名称,通过分配的下标访问的数据集合中的元素。

数组是具有相同类型的一组数据。当访问数组中的数据时,可以通过下标来指明。c#中数组元素可以为任何数据类型,数组下标从0开始,即第一个元素对应的下标为0,以后逐个递增。数组可以一维也可多维。

一维数组是最基本的数组类型,其声明方法如下:
数据类型 [ ] 数组名 ;
举例:
int [ ] anArray ; // 声明一个整型的一维数组

具有两个维度的数组是二维数组,其声明方法如下:
数据类型 [ , ] 数组名 ;
举例:
int [ , ] anArray ; // 声明一个整型的二维数组
float [ , ]anArrayOfFloats; // 声明一个浮点型的二维数组
string [ , ] anArrayOfStrings; // 声明一个字符串型的二维数组

声明数组变量时,还没有创建数组,还没有为数组中元素分配任何内存空间,因此,声明数组后,需要对数组实例化:
anArray = new int [2,4] ;
anArrayOfStrings = new stirng [2,4] ;

我们也可以用给定的值对数组元素进行初始化。
int [, ] anArray = new int [2, 4] {{1,2,3,4},{5,6,7,8}};
string [, ] anArrayOfStrings = new string [2, 2] {{"某甲","某乙"}, {"冠军" ,"亚军" }};
也可使用下列快捷方式:
int [, ] anArray = {{0,1,2,3},{1,2,3,4}};
string [, ] anArrayOfStrings = {{"某甲","某乙"}, {"冠军" ,"亚军" }};

在C#语言中,数组为我们提供了一些有用的特性,利用这些特性,我们可以完成一些更高级的功能。
数组名.Length :返回一个整数,该整数表示该数组的所有维数中元素的总数。
数组名.Rank :返回一个整数,该整数表示该数组的维数。
数组名.GetLength(int dimension) :返回一个整数,该整数表示该数组的指定维(由参数dimension指定,维度从零开始)中的元素个数。

4.foreach语句针对数组或集合中的每一个元素,循环运行嵌入语句。
foreach语句的语法格式为:
foreach (数据类型 标识符 in 表达式)
嵌入语句

//包含6个元素的一维整数数组; 
int[] mf1=new int[6]; //注意初始化数组的范围,或者指定初值;

//包含6个元素的一维整数数组,初值1,2,3,4,5,6 
int[] mf2=new int[6]{1,2,3,4,5,6};
 
//一维字符串数组,如果提供了初始值设定项,则还可以省略 new 运算符 
string[] mf3={"c","c++","c#"};

//一维对象数组 
Object[] mf4 = new Object[5] { 26, 27, 28, 29, 30 };
 
//二维整数数组,初值mf5[0,0]=1,mf5[0,1]=2,mf5[1,0]=3,mf5[1,1]=4 
int[,] mf5=new int[,]{{1,2},{3,4}};
 
//6*6的二维整型数组 
int[,] mf6=new mf[6,6];

下面来看一个一维字符串数组的遍历 
using System; 
public class MikeCat 

static void PrintArray(string[] arr) 

//打印数组元素,arr.Length 表示数组元素的个数 
for(int i=0;i<arr.Length;i++) 

Console.WriteLine("arr[{0}]={1}",i,arr[i]); 


public static void Main() 

string[] arr={"c","c++","c#"}; 
//将数组作为一个参数传递 
PrintArray(arr); 


程序结果:arr[0]=c arr[1]=c++ arr[2]=c#

下面来看一个4行2列(4*2)的整型数组的遍历: 
using System; 
public class MikeCat 

static void PrintArray(int[,] arr) 

//通过两次FOR循环遍历二维数组 
for(int i=0;i<4;i++)//初始化i作为循环变量,i++实现该变量的自增运算。 
//for循环满足条件后执行完循环体一次后执行i++,然后进入下次循环。简单的c语法,这里做简单介绍供初学者学习。(详细可参阅《c# 高级编程4.0》一书) 

for(int j=0;j<2;j++) 

Console.WriteLine("arr[{0},{1}]={2}",i,j,arr[i,j]);//打印每个二维数组元素 



public static void Main() 

//主函数 
//将数组作为一个参数传递 
PrintArray(new int[,]{{1,2},{3,4},{5,6},{7,8}}; 

}

运行结果:arr[0,0]=1 arr[0,1]=2 arr[1,0]=3 arr[1,1]=4 arr[2,0]=5 arr[2,1]=6 arr[3,0]=7 arr[3,1]=8

【完美世界 http://www.23cat.com/Contents_51864.html】
【戮仙 http://www.23cat.com/Book_51960.html】

最新文章

  1. iOS 编译时的警告导致无法通过编译
  2. jQuery实战
  3. JDBC编程
  4. 攻城狮在路上(壹) Hibernate(四)--- 对象标识符(OID)生成机制
  5. Git的学习总结和使用时遇到的问题。
  6. 简单实体Json序列化(输出JSON的属性可变)
  7. &lt;c:if&gt;判断参数是否同时为空
  8. GDI+基础(1)
  9. MVC不错的学习资料
  10. js--事件对象的理解4
  11. Java Restful框架:Jersey入门示例(官方例子)
  12. 【Alpha】Daily Scrum Meeting——Day4
  13. CentOS 7配置成网关服务器
  14. bootsrap Collapse用法
  15. 通过ribbon 根据服务名获取所有服务实例的IP和端口列表
  16. SSH安装篇之——SecureCRT连接(内网和外网)虚拟机中的Linux系统(Ubuntu)
  17. dos命令行运行.class源文件错误解决办法
  18. 使用DataTrigger来代替Triggerr
  19. OSG漫游到指定坐标点位置
  20. JAVA 开发工具 市场状况

热门文章

  1. java中父类和子类初始化顺序
  2. 那些年我们踩过的坑之表单reset
  3. html (第四本书第六章盒子模型参考)
  4. eclipse中的maven build、maven clean、maven install和maven test的区别
  5. Atom-同步设置
  6. bzoj 2209 括号序列
  7. Python包管理工具pip安装
  8. rabbitmq的发布确认和事务 - 2207872494的个人空间
  9. C#如何直接调用非托管代码
  10. [置顶] js 实现 &lt;input type=&quot;file&quot; /&gt; 文件上传