数组

C# 数组从零开始建立索引,声明时[ ]必须跟在类型后面,而不是标识符后面。所有数组元素必须为同一类型
数组元素可以是任何类型,包括数组类型。数组可以是一维数组或多维数组

1None.gif//声明时同时声明大小
2None.gifint[]iarr=newint[6];
3None.gif
4None.gif//声明时赋值,隐式约定大小
5ExpandedBlockStart.gifContractedBlock.gifint[]jarr=newint[]dot.gif{1,2,3,4,5,6};
6None.gif
7None.gif//数组元素可以是任何类型,包括数组类型
8ExpandedBlockStart.gifContractedBlock.gifchar[][]chararr=newchar[][]dot.gif{"Hello".ToCharArray(),"C#".ToCharArray()};
9None.gif
10None.gif//多维数组
11ExpandedBlockStart.gifContractedBlock.gifint[,]k=newint[,]dot.gif{dot.gif{1,2},dot.gif{3,4},dot.gif{5,6}};

array常用属性

Length所有维数中元素的总数
Rank 获取 Array 的秩(维数)

array常用方法

GetLength 指定维中的元素数
GetUpperBound指定维度的上限
GetLowerBound 指定维度的下限
static Sort Reverse对一维数组对象中的元素进行排序
static IndexOf 返回一维数组中某个值第一个匹配项索引
static LastIndexOf返回一维数组中某个值的最后一个匹配项索引


以下代码描述了对数组的遍历
1None.gifint[]i;
2ExpandedBlockStart.gifContractedBlock.gifi=newint[]dot.gif{1,2,3,4,5,6,7,8,9,0};
3None.giffor(intj=0;j<=i.Length-1;j++)
4ExpandedBlockStart.gifContractedBlock.gifdot.gif{
5InBlock.gifSystem.Console.WriteLine(i[j]);
6ExpandedBlockEnd.gif}

7None.gif
8ExpandedBlockStart.gifContractedBlock.gifint[,]k=newint[,]dot.gif{dot.gif{1,2},dot.gif{3,4},dot.gif{5,6}};
9None.gif
10None.gifSystem.Console.WriteLine(k.Length);
11None.giffor(intn=0;n<=k.GetLongLength(0)-1;n++)
12ExpandedBlockStart.gifContractedBlock.gifdot.gif{
13InBlock.giffor(intm=0;m<=k.GetLongLength(1)-1;m++)
14ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{
15InBlock.gifSystem.Console.WriteLine("{0},{1}:{2}",n,m,k[n,m]);
16ExpandedSubBlockEnd.gif}

17ExpandedBlockEnd.gif}



ok,在结束数组的学习前,我们做点关于数组的练习。

练习1
声明一个长度为100的int数组,该数组下标为0或偶数的元素值为该下标值的两倍,奇数值为位于该奇数前一个位置值的相反数。即0,0,4,-4,8,-8…..

1None.gif//方案1
2None.gifint[]iArr=newint[100];
3None.gif
4None.giffor(inti=0;i<=iArr.Length-1;i++)
5ExpandedBlockStart.gifContractedBlock.gifdot.gif{
6InBlock.gifif(i%2==0)
7ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{
8InBlock.gifiArr[i]=i*2;
9ExpandedSubBlockEnd.gif}

10InBlock.gifelse
11ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{
12InBlock.gifiArr[i]=-iArr[i-1];
13ExpandedSubBlockEnd.gif}

14InBlock.gifSystem.Console.WriteLine("iArr[i]={0}",iArr[i]);
15ExpandedBlockEnd.gif}

16None.gifSystem.Console.WriteLine("-----------------------------");
17None.gif//方案2
18None.gifint[]jArr=newint[100];
19None.gif
20None.giffor(inti=0;i<=jArr.Length-1;i++)
21ExpandedBlockStart.gifContractedBlock.gifdot.gif{
22InBlock.gifiArr[i]=i%2==0?i*2:-iArr[i-1];
23InBlock.gifSystem.Console.WriteLine("iArr[i]={0}",iArr[i]);
24ExpandedBlockEnd.gif}

25None.gifSystem.Console.WriteLine("-----------------------------");



练习2
声明一个长度为26*2的一维char数组,使用确定循环在该数组中以AaBbCcDd…的方式放入字符。

1None.gif//方案1
2None.gifchar[]cArr=newchar[26*2];
3None.gif
4None.giffor(inti=0;i<26;i++)
5ExpandedBlockStart.gifContractedBlock.gifdot.gif{
6InBlock.gifcArr[i*2]=(char)('A'+i);
7InBlock.gifcArr[i*2+1]=(char)('a'+i);
8InBlock.gifSystem.Console.WriteLine(cArr[i*2]);
9InBlock.gifSystem.Console.WriteLine(cArr[i*2+1]);
10ExpandedBlockEnd.gif}

11None.gifSystem.Console.WriteLine("-----------------------------");
12None.gif//方案2
13None.gifchar[]chararray=newchar[26*2];
14None.giffor(inti=0;i<chararray.Length;i++)
15ExpandedBlockStart.gifContractedBlock.gifdot.gif{
16InBlock.gifif(i%2==0)
17ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{
18InBlock.gifchararray[i]=Convert.ToChar(Convert.ToInt32('A')+i/2);
19ExpandedSubBlockEnd.gif}

20InBlock.gifelse
21ExpandedSubBlockStart.gifContractedSubBlock.gifdot.gif{
22InBlock.gifchararray[i]=Convert.ToChar(chararray[i-1].ToString().ToLower());
23ExpandedSubBlockEnd.gif}

24InBlock.gifSystem.Console.WriteLine(chararray[i].ToString());
25ExpandedBlockEnd.gif}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值