C#中的数组及常见操作
qingheluo2021-09-01清河洛788
数组是一个存储相同类型元素的固定大小的顺序集合,是用来存储数据的集合。数组中某个指定的元素是通过索引来访问的。所有的数组都是由连续的内存位置组成的。最低的地址对应第一个元素,最高的地址对应最后一个元素。声明一个数组datatype[] arrayName;
datatype :用于指定被存储在数组中的元素的类型
[] :指定数组的秩(维度)
arrayName:指定数组的名称
元素类型和秩之间可以有空格也可以不留空格
声明一个数组不会在内存中初始化数组创建(初始化)数组数组是一个引用类型,所以需要使用new关键字来创建数组的实例double[] demo = new dou...
数组是一个存储相同类型元素的固定大小的顺序集合,是用来存储数据的集合。
数组中某个指定的元素是通过索引来访问的。
所有的数组都是由连续的内存位置组成的。最低的地址对应第一个元素,最高的地址对应最后一个元素。
声明一个数组
datatype[] arrayName; datatype :用于指定被存储在数组中的元素的类型 [] :指定数组的秩(维度) arrayName:指定数组的名称 元素类型和秩之间可以有空格也可以不留空格
声明一个数组不会在内存中初始化数组
创建(初始化)数组
数组是一个引用类型,所以需要使用new关键字来创建数组的实例
double[] demo = new double[10]; 会创建一个所有元素都是double类型的包含10个元素的数组
当创建一个数组时,会根据数组元素类型隐式为每个元素初始化一个默认值。如int数组所有元素都会被初始化为0
赋值给数组
可以通过使用索引号赋值给一个单独的数组元素
double[] demo = new double[10]; demo[2] = 3600;
可以在声明数组的同时给数组赋值
int[] demo = {1,2,3,4,5}
可以创建数组的时候同时赋值
int[] demo = new int[5] {1,2,3,4,5} 可以省略数组的大小 int[] demo = new int[] {1,2,3,4,5}
其他创建数组的方法
stying..ToCharArray():创建并返回一个char数组
访问数组元素
元素是通过带索引的数组名称来访问的
使用foreach循环遍历数组
foreach(int x in demo){ Console.WriteLine(x); }
多维数组
C#中的多维数组概念不同于其他语言中的多维数组,C#中的多维数组又称为矩形数组
声明一个int类型的二维数组 int[,] demo 中括号中有1个逗号,表示数组为二维数组 声明一个int类型的三维数组 int[,,] demo 中括号中有2个逗号,表示数组为三维数组
一个二维数组可以被认为是一个带有x行和y列的表格
创建一个二维数组 int[,] demo = new int[3,4]{ {1,2,3,4}, {5,6,7,8}, {9,10,11,12} } 上例表示创建一个3行4列的二维数组 通过使用下标,即数组的行索引和列索引 demo[1,3]表示demo数组的第2行第4列的元素
一个三维数组表示一个有x行y列且每个元素又是包含x个元素的数组
创建一个三维数组 int[,,] demo = new int[2,2,3]{ {{1,2,3},{4,5,6}}, {{7,8,9},{10,11,12}} } 上例表示创建一个2行2列且每个元素又包含3个元素的数组 demo[0,1,1]表示获取第1行第2列中的第2个元素,即5
交错数组
C#中的交错数组概念与其他语言的多维数组类似,但是在C#中交错数组是一维数组
创建一个交错数组 int [][] demo = new int[3][4] 表示创建一个包含3个元素的int类型数组,而这3个元素每个元素又是一个包含4个元素的数组。 初始化交错数组 int [][] demo = new int[3][4]{ new int[] {1,2,3,4}, new int[] {5,6,7,8}, new int[] {9,10,11,12} }
数组的常用属性和方法
Array类是C#中所有数组的基类,它是在System命名空间中定义。
Array类提供了各种用于数组的属性和方法。
常用属性
IsFixedSize:bool,返回数组是否带有固定大小 IsReadOnly:bool,数组是否只读 Length:int,所有维度的数组中的元素总数的32位整数 LongLength:long,所有维度的数组中的元素总数的64位整数 Rank:获取数组的秩(维度)
常用方法
Array.Clear(arr,index,len):根据元素的类型,设置数组中从制定索引index开始的len个元素为默认值 Array.Copy(arr1, arr2, len):从数组arr1的第一个元素开始复制len个元素到数组arr2的第一个元素位置 Array.Copy(arr1, index1 , arr2, index2 , len):从数组arr1的index1位置元素开始复制len个元素到数组arr2的index2元素位置 arr1.CopyTo(arr2, index):从arr1中复制所有的元素到arr2是指定索引index位置 arr.GetLength(n):获取数组arr的指定维度(n)中的元素总数(32为整数) arr.GetLongLength(n):获取数组arr的指定维度(n)中的元素总数(64为整数) arr.GetUpperBound(n):获取数组中指定维度的上界 arr.GetLowerBound(n):获取arr中指定维度的下界 arr.GetType():获取当前实例元素的类型 arr.GetValue(index):获取arr中指定索引index位置的值 Array.IndexOf(arr, val):在arr中搜索指定的val,返回第一次匹配的索引,查找失败时返回值为该数组的下标下限减1 Array.LastIndexOf(arr, val):在arr中搜索指定的val,返回最后一次匹配的索引,查找失败时返回值为该数组的下标下限减1 Array.Reverse(arr):逆转arr数组中元素的顺序 arr.SetValue(val, index):为arr中指定索引的元素设置值 Array.Sort(arr):将arr元素从小到大排序 arr.ToString():返回一个表示当前对象的字符串