数组的定义:存储相同数据的集合.
定义了一个长度为4的整型数组,这个数组只能存整型数据
第一种写法:动态分配空间
int[] intArray = new int[4];
第二种写法
int[] intAraay = new int[]{1,2,3,4,5};
初始化数组的时候,要么给定长度,要么初始化数组内的元素个数
第三种写法
int[] intArray = {1,2,3,4};
实际上intArray[] 她的原型为Array
而int[] 数组可以用foreach循环的原因归根结底为:Array类本身已经实现了IEnumrable这个接口
访问数组的元素
访问数组第0个位置存储的元素
Console.WriteLine("数组第0个位置存储的元素为:" + intArray[0]);
访问数组第4个位置存储的元素----- 访问越界(程序崩溃)
Console.WriteLine ("数组第4个位置存储的元素为:" + intArray [4]);
//遍历数组1
for (int i = 0; i < intArray.Length; i++) {
Console.WriteLine ("下标:{0},值为:{1}", i, intArray [i]);
}
//遍历数组2
foreach (int item in intArray) {
Console.WriteLine ("数组的元素为:" + item);
}
如何修改数组中的元素呢?--->通过索引取值进行赋值
//intArray[2] = 10.0f; 这是错误的因为数据类型不对
intArray[2] = 10;
Array抽象类型的抽象数组(了解)
Array arr = Array.CreateInstance (typeof(int), 5);
arr.SetValue (1, 0);
arr.SetValue (2, 1);
arr.SetValue (3, 2);
for (int i = 0; i < 5; i++) {
Console.WriteLine (arr.GetValue(i));
}
//把arr数组转换成int[]数组
int[] newIntArray = (int[])arr;
foreach (int item in newIntArray) {
Console.WriteLine (item);
}
//ArraySegmentint<T>
int[] intArray1 = { 1, 2, 3, 4 };
int[] intArray2 = { 5, 6, 7, 8 };
var se1 = new ArraySegment<int>[2] {
new ArraySegment<int>(intArray1,0,3),
new ArraySegment<int>(intArray2,3,1)
};
ArraySegmentse<int> se = (ArraySegment<int>[])se1;
Print (se1);
//练习4:定义一个整型数组,初始化3个整型元素,打印出最大值,最小值,以及平均值.
float[] m = new float[3];
m.SetValue (2.0f, 0);
m.SetValue (5.0f, 1);
m.SetValue (3.0f, 2);
float max = m[0], min = m[0], avg = 0,sum=m[0],index=1;
for (int i = 1; i < m.Length; i++) {
sum += m [i];
index++;
avg = sum / index;
if (max<m[i]) {
max = m [i];
}
if (min>m[i]) {
min = m [i];
}
}
Console.WriteLine ("最大{0}最小{1}平均{2}",max.ToString("f2"),min.ToString("f2"),avg.ToString("f2"));
网友评论