C#入门基础三四
数组:数组是一组具有相同类型的值的集合,可以通过索引来访问数组中的元素。
声明数组的语法: A.数据类型 [] 数组名称; B.数据类型 [] 数组名称 = new 数据类型[数组大小]; C.int [] arr = {1,3,4,5,5,3,}; 通过指定位置索引:arr[0]
多维数组:多个线性数组的值 .GetLength() 一维:int [] arr = new int[2]; 二维:int [,] arr = new int[3,5]; 三维:int [,,] arr = new int[2,4,5]; 多维数组使用GetLength获取长度,维数同样是从0开始。
交错数组:“数组中数组”。() .Length 声明语法:int [][] arr = new int[2][];//arr包含两个元素 int [0] = new int[2];//第一个元素是两个整数的数组 int [1] = new int[3];//第二个元素是三个整数的数组 赋值:arr[0][0] = 100; 与多维数组相比较,交错数组具有更好的性能。
System.Array数组: 声明语法:Array arr = Array.CreateInstance(typeof(int),3);//类型为int,长度为3 typeof关键字用于数据类型。 ============================================================================== Using System.Collections 集合:使用count获取集合长度。 Hashtable集合:语法:Hashtable name = new Hashtable(); 例:Hashtable hs = new Hashtable(); //添加 hs.Add(4,"张三"); hs.Add(6,"李四"); hs.Add(7,"王五"); //hs.Remove(4);//删除 //Console.WriteLine(hs.Count);//获取集合长度 Console.WriteLine(hs["Key"]);//获取key值 Console.WriteLine(hs["Values"]);//获取values值 //foreach遍历数组Values值 foreach(object lan in hs.Values ) { Console.WriteLine(lan.ToString()); }
ArrayList集合:语法:ArrayList name = new ArrayList(); 例: ArrayList al = new ArrayList(); //添加元素 al.Add(12); al.Add("蓝天"); al.Add(3.14); al.RemoveAt(0);//移除数组列表中指定的索引位置的元素 al.Insert(0,"O(∩_∩)O哈哈~");//插入数组列表中指定的索引位置 Remove:移除元素。TrimToSize:将容量设置为ArrayList中元素的实际数目 for (int i = 0; i < al.Count;i++ ) { Console.WriteLine(al[i]);//循环输出所有元素 }
============================================================================== 数组与集合的区别:
数组 集合 使用length获取长度 使用count获取长度 固定的长度 非固定长度,可增可删(object) 区别 数据类型固定(申请什么类型就得添加什么类型的值) object类型(任意添加任何类型) 直接赋值 使用Add添加 for foreach system下 collection下 ============================================================================== hashtable与Arraylist的区别: hashtable键值映射,简单说键对应值,我们认给每值都起名字,键所谓名字,我们通过名字来寻找值,而arraylist集合,线性结构存储数据,集合存储内容都值,并且我们给每值用索引做编号,所遍历过程我们用索引;
arraylist有序,而hashtable无序;
arraylist可在特定位置添加、删除元素,而hashtable只能顺序添加。
arraylist 索引为0 hashtable object(自定义) ============================================================================== 嵌套循环:外层循环用来控制输出的行数,内层循环用来控制输出的列数。
//99乘法表 for(int i = 0;i <= 9;i++) { for (int j = 0; j < i;j++ ) { Console.WriteLine((j+1)+"*"+i+"="+(i*(j+1))+" "); } Console.WriteLine("\n"); }
冒泡排序:数组元素的排序。 (一种算法)
两层循环嵌套:外层循环 N-1 内层循环 N-1-i (N 代表数组或集合的长度)
例: //冒泡排序 int[] arrl = {3,6,2,7,9,12,4 };//申请数组 int temp;//定义全局变量 for(int i = 0;i < arrl.Length-1;i++)//控制比较的趟数,这个循环一次表示比较了一趟 { for (int w = 0; w < arrl.Length - i - 1; w++) { if(arrl[w] < arrl[w+1]) { temp = arrl[w]; arrl[w] = arrl[w+1]; arrl[w+1] = temp; } } } foreach(int wy in arrl)//遍历输出排序之后的数组 { Console.WriteLine(wy); }
==============================================================================
错误调试: try{//抛出异常 //程序代码; }catch(Exception e){//捕获并处理异常.如果有多个catch块,父类(Exception)必须在后面 //异常处理代码; Console.WriteLine(e.Message);//显示描述错误状况的文本 Console.WriteLine(e.Source);//显示导致异常发生的应用程序或对象的名称 Console.WriteLine(e.StackTrace);//提供在堆栈中所调用方法的详细信息,并首先最近调用的方法。 Console.WriteLine(e.InnerException);//提供对内部异常的访问。
} finally{//最终处理 }
黑盒测试:不管代码是什么,只要功能可以实现就是成功。 白盒测试:与黑盒相反。