第三章 流程控制语句
1.switch
1.1c#中switch不支持从一个case标签贯穿到另一个case标签,除非case中没有代码
1.2 break 只能用于 循环语句(while ,do while, for ,foreach),switch,if
注意:
if 不能单独与break使用,if要嵌套在循环语句中
例:
for(int a=0;a<10;a++){
if(b++1) {
break;
}
}
2.foreach
foreach(var item in collection){
语句快
}
var 变量类型
item 用于遍历数组的变量(变量类型为 var )
collection 被遍历的数组
第四章 数组
1数组初始化
1.1一维数组初始化
type [ ] arrayName = new type [ val1 ]{value1,value2, . . . }
type [ ] arrayName = new type [ ]{ value1, value2, . . . }
type [ ] arrayName = {value1, value2, . . . }
1.2.二维数组初始化
type [ , ] arrayName = new type [ val1 , val2 ] { { value1,value2, . . . } ,{ value3,value4, . . . } , . . . }
type [ , ] arrayName = new type [ , ] { { value1, value2 , . . . } , { value3, value4 , . . .}, . . . }
type [ , ] arrayName = { { value1, value2 , . . . } , { value3 , value , . . . } , . . . }
注意:
交错数组:只定义了val1 或val2
当只定义了val1时数组行数由val1确定,列输不确定
只定义了val2 时数组列数由val2确定,行数不确定
1.3.多维数组初始化(与二维相似)
例:int [ , , ] = new int [2,4,3]
{
{ {1,1,1}, {2,2,2},{3,3,3},{4,4,4} }
{ {a,a,a}, {b,b,b},{c,c,c},{d,d,d} }
}
2.静态数组和动态数组
2.1静态数组
由System .Array类实现 // 详细见:http://www.runoob.com/csharp/csharp-array-class.html
数组维度大小不可改变
属性:
length 数组长度(数组中元素总数)32位
Longlength 数组长度 64位
rank 维度
(Array 与ArrayLis t相同部分)
IsReadOnly 表示数组是否为只读 //返回true 为只读
IsFixedSize 表示数组大小是否固定
(多线程)
IsSynchronize 表示是否同步访问数组
SyncRoot 获取同步数组访问对象
方法:
GetValue(Int32) 获得数组指定位置的值
SetVvalue(Int32)
Clear()//清楚数组中指定位置元素
例:
int []numbers1 = {1, 2, 3, 4, 5, 6, 7, 8, 9}
Array.Clear(numbers1, 2, 5)
//输出: 1 2 0 0 0 0 0 8 9
int [ , ] numbers = new int [ , ]
{
{ 1, 2, 3 },
{ 4, 5, 6 },
{ 7, 8, 9 }
}
Array.Clear(numbers2, 2, 5)
//输出:1 2 0
0 0 0
0 8 9
IndexOf()//第一个匹配元素索引
LastIndexOf()//最后一个匹配元素索引
copy()//部分复制
copyto()//全部复制
Sort()//一维数组排序
Reverse()//反转一维数组中元素的排序
GetLength();//指定维度数组长度
GetLongLength()
2.2动态数组
System.ArrayList
属性
IsReadOnly 表示数组是否为只读 //返回true 为只读
IsFixedSize 表示数组大小是否固定
(多线程)
IsSynchronize 表示是否同步访问数组
SyncRoot 获取同步数组访问对象
方法
CopyTo()//复制到一维数组