数组

1
2
3
4
5
6
7
8
<baseType> [] <name>;
<baseType> [] <name> = new <baseType> [ArraySize] {..,..,...};

int[] arr2 = new int[4];
MyClass[] mcArr = new MyClass[4];
int[,,] arr3 = new int[3,6,2];
int[] intArr = new int[] {10, 20, 30, 40};
int[,] intArray2 = new int[,] {{10, 1}, {2, 10}, {11, 9}};


![[csharp-7-array.png]]

foreach语句

1
2
3
4
foreach (<baseType> <name> in <array>)
{
//can use <name> for each element
}
1
2
3
4
5
6
int [] arr1 = {10, 11, 12, 13};

foreach(int item in arr1)
{
Console.WriteLine($"Item Value: { item }");
}

数组继承的有用成员

成员 类型 生存期 意义
Rank 属性 实例 获取数组的维度数
Length 属性 实例 获取数组中所有维度的元素总数
GetLength 方法 实例 返回数组的指定维度的长度
Clear 方法 静态 将某一范围内的元素设置为 0 或 null
Sort 方法 静态 在一维数组中对元素进行排序
BinarySearch 方法 静态 使用二进制搜索,搜索一维数组中的值
Clone 方法 实例 进行数组的浅复制 —— 对于值类型数组和引用类型数组,都只复制元素
IndexOf 方法 静态 返回一维数组中遇到的第一个值
Reverse 方法 静态 反转一维数组中某一范围内的元素
GetUpperBound 方法 实例 获取指定维度的上限

Clone方法

数组的Clone方法是浅拷贝,它只创建数组本身的克隆,如果是引用类型数组,它不会复制元素引用的对象。

枚举

1
2
3
4
5
6
7
enum <typeName> : <underlyingType>
{
<value1> = <actualVal1>,
<value2> = <actualVal2>,
...
<valueN> = <actualValN>
}
  • 未赋值的任何值会自动获得一个初始值,这个初始值是比上一明确声明的值大1,默认从0开始。
  • 可以使用一个值作为另一个的基础值:<value2> = <value1>

结构

1
2
3
4
5
6
struct <typeName>
{
<accessibility1> <type1> <name1>;
<accessibility2> <type2> <name2>;
...
}
  • 结构类型也放在名称空间内,与Main函数并列
  • 通过使用.来对结构内的属性进行i引用