景程学院吧 关注:57贴子:724
  • 0回复贴,共1

C#数组、集合与错误调试

只看楼主收藏回复

数组:数组是一组具有相同类型的变量的集合,可以通过索引来访问数组中的元素。
声明数组的语法:
A.数据类型 [] 数组名称;
B.数据类型 [] 数组名称 = new 数据类型[数组大小];
C.int [] arr = {1,3,4,5,5,3,};
通过指定位置索引:arr[0]
多维数组:一维:int [] arr = new int[2];
二维:int [,] arr = new int[3,5];
三维:int [,,] arr = new int[2,4,5];
多维数组使用GetLength获取长度,维数同样是从0开始。
交错数组:“数组中数组”。
声明语法: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关键字用于数据类型。
==============================================================================
集合:使用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"]);//获取keys值
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类型(任
意添加任何类型)
直接赋值 使用Add添

==============================================================================
hashtable与Arraylist的区别:
hash键值映射,简单说键对应值,我们认给每值都起名字,键所谓名字,我们通过名字来寻找
值,而arraylist集合,线性结构存储数据,集合存储内容都值,并且我们给每值用索引做编
号,所遍历过程我们用索引;arraylist有序,而hash无序;arraylist可在特定位置添加、
删除元素,而hashtable只能顺序添加。
==============================================================================
嵌套循环:外层循环用来控制输出的行数,内层循环用来控制输出的列数。
//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");
}
冒泡排序:数组元素的排序。
例: //冒泡排序
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);
}
==============================================================================
代码运行调试:F5--->F10(F5--->F11)【f10:逐步执行。f11:进方法的逐步执行】
错误调试:
try{
//程序代码;
}catch(Exception e){
//异常处理代码;
Console.WriteLine(e.Massage);//显示描述错误状况的文本
Console.WriteLine(e.Source);//显示导致异常发生的应用程序或对象的名称
Console.WriteLine(e.StackTrace);//提供在堆栈中所调用方法的详细信息,并首
先最近调用的方法。
Console.WriteLine(e.InnerException);//提供对内部异常的访问。
}


IP属地:北京1楼2014-03-14 15:43回复