C# 数组

在C#中,数组实际上是对象,而不只是像C和C++中那样的可寻址连续内存区域

数组常用属性

Array.Rank       维数

Array.Length     所有维度总个数

Array.GetLength(int dimension)指定维度元素个数

Array.GetLowerBound(int dimension)指定维度的下限

Array.GetUpperBound(int dimension)指定维度的上限

 数组的使用通常为四个步骤:

1、声明一个数组变量。

2、为这个变量赋值(值为对应的数组对象,可以是新建一个数组对象,也可以是已有的对象。)

3、为这个变量所引用的数组对象赋值。

4、使用数组对象中的值。

eg:

int[] arr;  //步骤1

arr = new int[10];  //步骤2,(其实新建的数组对象已有初始值,但通常不是我们想要的值,所以要通过步骤3赋予我们想要的值。)

for(int i=0; i<10; i++)  //步骤3

    arr[i] = i;

foreach (int v in arr)  //步骤4
  Console.Write(v);

可以将某些步骤合在一个,这样可以省略一些代码。

将1;2合在一起:

int[] arr = new int[10];

for(int i=0; i<10; i++)

    arr[i] = i;

 将2;3合在一起:

int[] arr;

arr = new int[10]{1,2,3,4,5,6,7,8,9,10};

注:初使化列表以逗号(,)隔开,且列表中的个数必须与数组长度一致。

这种情况下可以不设置数组的初始化大小,由数组元素确定。

int[] arr;

arr = new int[]{1,2,3,4,5,6,7,8,9,10};

将1;2;3合在一起:

int[] arr = new int[3]{1,2,3};

or

int[] arr = new int[]{1,2,3};

这种情况下可以简写成:

int[] arr = {1,2,3};

多维数组

int[,] arr = { { 1, 2 }, { 3, 4 } };  //这里的逗号个数等于维数减一; 没个维的大小要一样; 不允许C++那样通过arr[2]访问arr[1,0]的元素;

int[,] arrr1 = new int[2,2] { { 1, 2 }, { 3, 4 } };//这里的大小可以省略,但不可只省略其中的一半。不可int[,] arrr1 = new int[2,] { { 1, 2 }, { 3, 4 } }或int[,] arrr1 = new int[,2] { { 1, 2 }, { 3, 4 } }

交错数组

//交错数组是数组的数组,因此其元素是引用类型,并初始化为null。
int[][] jaggeArr1 = new int[3][];
jaggeArr1[0] = new int[2]{1,2};
jaggeArr1[1] = new int[3]{3,4,5};
jaggeArr1[2] = new int[4]{3,4,5,6};
int nRank = jaggeArr1.Rank;    //一维的,声明多维的交错数组:int[,][] jaggeArr;
int nUpperBound = jaggeArr1.GetUpperBound(0);  //因为我们声明的是一维的,有三个数组元素的数组,所以这里的nUpperBound等于2;

 

 

int[,][] jaggeArr2 = new int[2, 2][];  //声明了一个二维的,每维有两个数组元素的数组。

int nRank = jaggeArr2.Rank;    //2
int nUpperBound = jaggeArr2.GetUpperBound(0);  //1

 

 int[][,] jaggearr = new int[2][,];  //声明一个一维的,有两个多维数组元素的数组。

 

//不能从元素初始化中省略new运算符,因为不存在元素的默认初始化。
int[][] jaggeArr3 = new int[][]
{
new int[]{1,2},
new int[]{2,3,4}
};
int c = jaggeArr3.Length;//2;两个数组元素。

 

转载于:https://www.cnblogs.com/wrbxdj/p/5812678.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值