C# ppt

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第五章数组和集合目标数组的定义声明和操作一维和二维数组交错数组和多维数组简单的排序方法数组列表、哈希表、堆栈集合的用法体验首先产生一个包含有12个随机数的数组,然后分别计算出数组中的最大值、最小值。最后程序将显示整个随机数数组。随机数的范围是1—100之间。数组3-1数组是同一数据类型的一组值数组属于引用类型,因此存储在堆内存中数组元素初始化或给数组元素赋值都可以在声明数组时或在程序的后面阶段中进行语法:数据类型[元素个数]数组名称;int[6]arrayHere;数组3-278(0)67(1)89(2)92(3)66(4)JoeTomLeeJimBill23.518.927.321.429.6学生分数的整数数组职员姓名的字符串数组室温的浮点数组数组位置数组3-3staticvoidMain(string[]args){intcount;Console.WriteLine(请输入您要登记的学生人数);count=int.Parse(Console.ReadLine());//声明一个存放姓名的字符串数组,其长度等于提供的学生人数string[]names=newstring[count];//用一个for循环来接受姓名for(inti=0;icount;i++){Console.WriteLine(“请输入学生{0}的姓名,i+1);names[i]=Console.ReadLine();}Console.WriteLine(已登记的学生如下:);//用foreach循环显示姓名foreach(stringdispinnames){Console.WriteLine({0},disp);}}数组声明初始化数组元素的循环显示输出的循环一维数组声明并初始化int[]array1=newint[5]{1,3,5,7,9};string[]weekDays=newstring[]{Sun,Mon,Tue,Wed,Thu,Fri,Sat};int[]array2={1,3,5,7,9};string[]weekDays2={Sun,Mon,Tue,Wed,Thu,Fri,Sat};声明一个数组变量但不将其初始化int[]array3;array3=newint[]{1,3,5,7,9};//OK//array3={1,3,5,7,9};//Error多维数组声明数组int[,]array6=newint[10,10];声明数组时将其初始化int[,]array2D=newint[,]{{1,2},{3,4},{5,6},{7,8}};int[,,]array3D=newint[,,]{{{1,2,3}},{{4,5,6}}};声明一个数组变量但先不将其初始化int[,]array5;array5=newint[,]{{1,2},{3,4},{5,6},{7,8}};//OK//array5={{1,2},{3,4},{5,6},{7,8}};//Error也可以给数组元素赋值,例如:array5[2,1]=25;交错数组3-1交错数组是数组的元素为数组的数组6235①交错数组声明int[][]jaggedArray=newint[4][];②交错数组初始化jaggedArray[0]=newint[6];jaggedArray[1]=newint[2];jaggedArray[2]=newint[3];jaggedArray[3]=newint[5];交错数组3-2例如:jaggedArray[0]=newint[]{1,3,5,7,9,13};jaggedArray[1]=newint[]{0,2,};jaggedArray[2]=newint[]{5,11,22};jaggedArray[3]=newint[]{3,5,7,10,32};还可以在声明数组时将其初始化,如:int[][]jaggedArray2=newint[][]{newint[]{1,3,5,7,9},newint[]{0,2,4,6},newint[]{11,22}};交错数组3-3访问交错数组jaggedArray3[0][1]=77;jaggedArray3[2][1]=88;数组示例usingSystem;classDeclareArraysSample{publicstaticvoidMain(){//一维数组int[]numbers=newint[5];//多维数组string[,]names=newstring[5,4];//数组的数组(交错数组)byte[][]scores=newbyte[5][];//创建交错数组for(inti=0;iscores.Length;i++){scores[i]=newbyte[i+3];}//打印每行的长度for(inti=0;iscores.Length;i++){Console.WriteLine(Lengthofrow{0}is{1},i,scores[i].Length);}}}数组排序-气泡将待排序的元素看作是竖着排列的“气泡”,较小的元素比较轻,从而要往上浮。【示例】:4913131313131313384927272727272765384938383838389765384949494949769765494949494913769765656565652727769776767676//气泡排序usingSystem;namespaceBubbleSorter{publicclassBubbleSorter{publicvoidSort(int[]list){inti,j,temp;booldone=false;j=1;while((jlist.Length)&&(!done)){done=true;for(i=0;ilist.Length-j;i++){if(list[i]list[i+1]){done=false;temp=list[i];list[i]=list[i+1];list[i+1]=temp;}}j++;}}}publicclassMainClass{publicstaticvoidMain(){int[]iArrary=newint[]{1,5,13,6,10,55,99,2,87,12,34,75,33,47};BubbleSortersh=newBubbleSorter();for(intm=0;miArrary.Length;m++)Console.Write({0},iArrary[m]);Console.WriteLine();sh.Sort(iArrary);for(intm=0;miArrary.Length;m++)Console.Write({0},iArrary[m]);Console.WriteLine();}}}集合类名称说明ArrayList动态数组BitArray位数组Hashtable关键字和值的查找表Queue先进/先出(FIFO)的元素集合SortedList元素的有序列表Stack后进/先出(LIFO)的元素集合System.Collections命名空间数组列表集合-ArrayList类似一维数组数组列表是动态数组可以存放任何对象常用方法:•增加元素-Add•插入元素-Insert•删除元素-RemoveArrayList示例ArrayListmyAL=newArrayList();myAL.Add(Hello);myAL.Add(World);myAL.Add(!);Console.WriteLine(myAL);Console.WriteLine(Count:{0},myAL.Count);Console.WriteLine(Capacity:{0},myAL.Capacity);Console.Write(Values:);PrintValues(myAL);publicstaticvoidPrintValues(IEnumerablemyList){foreach(ObjectobjinmyList)Console.Write({0},obj);Console.WriteLine();}位数组集合-BitArrayBitArray集合是位值(位值是1和0)的组合体BitArray位集合是其元素为位标志的集合每一元素都是一位,而不是一个对象BitArray容量始终与计数相同提供位运算方法,例如And、Or、Xor、Not和SetAll等1001110LengthBitArrayflags=newBitArray(7)flags.Set(0,true);flags.Set(1,false);…boolIsMarry=flags.Get(3);是否结婚性别(男女)BitArray-示例usingSystem;usingSystem.Collections;publicclassSamplesBitArray{publicstaticvoidMain(){BitArraymyBA1=newBitArray(5);BitArraymyBA2=newBitArray(5);myBA1[0]=myBA1[1]=false;myBA1[2]=myBA1[3]=true;myBA2[0]=myBA2[2]=false;myBA2[1]=myBA2[3]=true;myBA2[1]=myBA2[4]=true;Console.WriteLine(初始值:);Console.Write(myBA1:);PrintValues(myBA1,8);Console.Write(myBA2:);PrintValues(myBA2,8);Console.WriteLine();Console.WriteLine(结果:);Console.Write(位与操作AND:);PrintValues(myBA1.And(myBA2),8);Console.WriteLine();Console.WriteLine(AfterAND);Console.Write(myBA1:);PrintValues(myBA1,8);Console.Write(myBA2:);PrintValues(myBA2,8);Console.WriteLine();try{BitArraymyBA3=newBitArray(8);myBA3[0]=myBA3[1]=myBA3[2]=myBA3[3]=false;myBA3[4]=myBA3[5]=myBA3[6]=myBA3[7]=true;myBA1.And(myBA3);}catch(ExceptionmyException){Console.WriteLine(Exception:+myException.Message);}}publicstaticvoidPrintValues(IEnumerablemyList,intmyWidth){inti=myWidth;foreach(ObjectobjinmyList){if(i=0){i=myWidth;Console.WriteLine();}i--;Console.Write({0,8},obj);}Console.WriteLine();}}哈希表集合-HashtableHashtable集合是键/值对的集合DictionaryEntry类型的实例,DictionaryEntry类型有一个Key和Value属性来读取和设置健和值。动态存放键/值对Hashtable示例usingSystem;usingSystem.Collections;namespaceEdu.Qhit.Code.Csharp.Array{classDictEnumInterfaceSample{staticvoidMain(string[]args){Hashtablehash=newHasht

1 / 30
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功