二维数组
二维数组的定义
//语法格式:类型名[,]数组名=new 类型名[第一维,第二维]{};
//二维数组的三种定义格式
//第一种动态初始化
int[,] a = new int[2, 3] { { 1, 2, 3 }, { 4, 5, 6 } };
//第二种动态初始化
int[,] b = new int[,] { { 1, 2, 3 }, { 4, 5, 6 } };
//第三种静态初始化
int[,] c = { { 1, 2, 3 }, { 4, 5, 6 } };
====================================================================
//得到二维数组的第一维的长度
Console.WriteLine(b.GetLength(0));
//得到二维数组的第二维长度
Console.WriteLine(b.GetLength(1));
//二维数组打印
for (int i = 0; i < a.GetLength(0); i++)
{
for (int j = 0; j < a.GetLength(1); j++)
{
Console.Write(a[i, j]);
}
}
foreach
foreach的用处
遍历一维数组变量的类型不明确,根据变量的值来判断,这样的类型成为弱类型;明确指定出变量的类型,称为强类型
var s = 23;
int[] a = { 2, 3, 5, 6, 8 };
//item是迭代变量
foreach (var item in a)
{
//item是迭代变量,他是只读的,不可以写入
Console.WriteLine(item);
}
//二维数组跟一位数组 遍历一样
字符串
string st = "hellowrold";
//字符串本质上是一个字符类型的数组,数组的名字就是字符串变量的名字
//不能偶使用数组+下标的形式去修改字符串里面的值,因为他是只读的
for (int i = 0; i < st.Length; i++)
{
Console.WriteLine(st[i]);
}
冒泡排序
//定一个数组
int[] a = { 4, 1, 3, 2, 5, };
//外面这个循环表示循环的次数
for (int i = 0; i < a.Length-1; i++)
{
//这个循环是数组元素的下标 比如 j=1; a[j] 也就是a[1]
for (int j = 0; j < a.Length-1-i; j++)
{
//比较,如果比a[j]比a[j+1]大就进行交换
if (a[j]>a[j+1])
{
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}