数组是一种数据结构,其声明方式如下:
type[] arrayname;
数组具有以下属性:
1.数组可以是一维、多维或交错的。
2.数值数组元素的默认值设置为零,而引用元素的默认值设置为 null。
3.交错数组是数组的数组,因此,它的元素是引用类型,初始化为 null。
4.数组的索引从零开始:具有 n 个元素的数组的索引是从 0 到 n-1。
5.数组元素可以是任何类型,包括数组类型。
一维数组
//声明一维数组,没有初始化,等于null
int[] intarray1;
//初始化已声明的一维数组
intarray1 = new int[3]; //数组元素的默认值为0
intarray1 = new int[3]{1,2,3};
intarray1 = new int[]{1,2,3};
//声明一维数组,同时初始化
int[] intarray2 = new int[3]{1,2,3};
int[] intarray3 = new int[]{4,3,2,1};
int[] intarray4 = {1,2,3,4};
string[] strarray1 = new string[]{"one","two","three"};
string[] strarray2 = {"this","is","an","string","array"};
多维数组
//声明二维数组,没有初始化
short[,] sarray1;
//初始化已声明的二维数组
sarray1 = new short[2,2];
sarray1 = new short[2,2]{{1,1},{2,2}};
sarray1 = new short[,]{{1,2,3},{4,5,6}};
//声明二维数组,同时初始化
short[,] sarray2 = new short [1,1]{{100}};
short[,] sarray3 = new short [,]{{1,2},{3,4},{5,6}};
short[,] sarray4 = {{1,1,1},{2,2,2}};
//声明三维数组,同时初始化
byte[,,] barray1 = {{{1,2},{3,4}},{{5,6},{7,8}}};
交错数组
//声明交错数组,没有初始化
int[][] jagintarray1;
//初始化已声明的交错数组
jagintarray1 = new int [2][] {
new int[]{1,2},
new int[]{3,4,5,6}
};
jagintarray1 = new int [][]{
new int[]{1,2},
// new int []{3,4,5},
intarray2 //使用int[]数组变量
};
//声明交错数组,同时初始化
int[][] jagintarray2 = {
new int[]{1,1,1},
//new int []{2,2},
intarray1
};
数组即是一组相同类型组合在一起,使用一个通用的名称,通过分配的下标访问的数据集合中的元素。
数组是具有相同类型的一组数据。当访问数组中的数据时,可以通过下标来指明。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}};
}
}
以上就是c#数组详解的内容。