[No0000EB]C# 数组(Array)
数组是一个存储相同类型元素的固定大小的顺序集合。数组是用来存储数据的集合,通常认为数组是一个同一类型变量的集合。
声明数组变量并不是声明 number0、number1、...、number99 一个个单独的变量,而是声明一个就像 numbers 这样的变量,然后使用 numbers[0]、numbers[1]、...、numbers[99] 来表示一个个单独的变量。数组中某个指定的元素是通过索引来访问的。
所有的数组都是由连续的内存位置组成的。最低的地址对应第一个元素,最高的地址对应最后一个元素。
声明数组
datatype[] arrayName;
其中,
- datatype 用于指定被存储在数组中的元素的类型。
- [ ] 指定数组的秩(维度)。秩指定数组的大小。
- arrayName 指定数组的名称。
初始化数组
声明一个数组不会在内存中初始化数组。当初始化数组变量时,您可以赋值给数组。
数组是一个引用类型,所以您需要使用 new 关键字来创建数组的实例。
赋值给数组
double[] balance = new double[10]; balance[0] = 4500.0;//可以通过使用索引号赋值给一个单独的数组元素;double[] balances = { 2340.0, 4523.69, 3421.0};//可以在声明数组的同时给数组赋值;int [] marks = new int[5] { 99, 98, 92, 97, 95};//可以创建并初始化一个数;int [] marks2 = new int[] { 99, 98, 92, 97, 95};//可以省略数组的大小;int[] score = marks;//可以赋值一个数组变量到另一个目标数组变量中。这样目标和源会指向相同的内存位置:
访问数组元素
元素是通过带索引的数组名称来访问的。这是通过把元素的索引放置在数组名称后的方括号中来实现的。
C# 数组细节
概念 | 描述 |
---|---|
多维数组 | C# 支持多维数组。多维数组最简单的形式是二维数组。 |
交错数组 | C# 支持交错数组,即数组的数组。 |
传递数组给函数 | 您可以通过指定不带索引的数组名称来给函数传递一个指向数组的指针。 |
参数数组 | 这通常用于传递未知数量的参数给函数。 |
Array 类 | 在 System 命名空间中定义,是所有数组的基类,并提供了各种用于数组的属性和方法。 |
1.C# 多维数组
C# 支持多维数组。多维数组又称为矩形数组。
string [,] names;//声明一个 string 变量的二维数组 int [ , , ] m;//声明一个 int 变量的三维数组
二维数组
多维数组最简单的形式是二维数组。一个二维数组,在本质上,是一个一维数组的列表。
一个二维数组可以被认为是一个带有 x 行和 y 列的表格。
Column0 |
Column1 |
Column2 |
Column3 |
|
Row0 |
a[0][0] |
a[0][1] |
a[0][2] |
a[0][3] |
Row1 |
a[1][0] |
a[1][1] |
a[1][2] |
a[1][3] |
Row2 |
a[2][0] |
a[2][1] |
a[2][2] |
a[2][3] |
因此,数组中的每个元素是使用形式为 a[ i , j ] 的元素名称来标识的,其中 a 是数组名称,i 和 j 是唯一标识 a 中每个元素的下标。
初始化二维数组
多维数组可以通过在括号内为每行指定值来进行初始化。
int [,] a = new int [3,4] {{0, 1, 2, 3} , /* 初始化索引号为 0 的行 */{4, 5, 6, 7} , /* 初始化索引号为 1 的行 */{8, 9, 10, 11} /* 初始化索引号为 2 的行 */ };
访问二维数组元素
二维数组中的元素是通过使用下标(即数组的行索引和列索引)来访问的。
2.C# 交错数组
交错数组是数组的数组。声明一个数组不会在内存中创建数组。
int[][] test = new int[5][];//创建交错数组 for (int i = 0; i < test.Length; i++) {test[i] = new int[4]; }int[][] scores = new int[2][]{new int[]{92,93,94},new int[]{85,66,87,88}};//初始化一个交错数组
scores 是一个由两个整型数组组成的数组 -- scores[0] 是一个带有 3 个整数的数组,scores[1] 是一个带有 4 个整数的数组。
3.C# 传递数组给函数
在 C# 中,可以传递数组作为函数的参数。通过指定不带索引的数组名称来给函数传递一个指向数组的指针。 using System;namespace ArrayApplication {class MyArray{double getAverage(int[] arr, int size){int i;double avg;int sum = 0;for (i = 0; i < size; ++i){sum += arr[i];}avg = (double)sum / size;return avg;}static void Main(string[] args){MyArray app = new MyArray();/* 一个带有 5 个元素的 int 数组 */int [] balance = new int[]{1000, 2, 3, 17, 50};double avg;/* 传递数组的指针作为参数 */avg = app.getAverage(balance, 5 ) ;/* 输出返回值 */Console.WriteLine( "平均值是: {0} ", avg );//平均值是: 214.4 Console.ReadKey();}} }
4.C# 参数数组
当声明一个方法时,如果不能确定要传递给函数作为参数的参数数目,可以使用参数数组。参数数组通常用于传递未知数量的参数给函数。
params 关键字
在使用数组作为形参时,C# 提供了 params 关键字,使调用数组为形参的方法时,既可以传递数组实参,也可以只传递一组数组。
public 返回类型 方法名称( params 类型名称[] 数组名称 )
using System;namespace ArrayApplication {class ParamArray{public int AddElements(params int[] arr){int sum = 0;foreach (int i in arr){sum += i;}return sum;}}class TestClass{static void Main(string[] args){ParamArray app = new ParamArray();int sum = app.AddElements(512, 720, 250, 567, 889);Console.WriteLine("总和是: {0}", sum);//总和是: 2938 Console.ReadKey();}} }
5.C# Array 类
Array 类是 C# 中所有数组的基类,它是在 System 命名空间中定义。Array 类提供了各种用于数组的属性和方法。
Array 类的属性
序号 |
属性 |
描述 |
1 |
IsFixedSize |
获取一个值,该值指示数组是否带有固定大小。 |
2 |
IsReadOnly |
获取一个值,该值指示数组是否只读。 |
3 |
Length |
获取一个 32 位整数,该值表示所有维度的数组中的元素总数。 |
4 |
LongLength |
获取一个 64 位整数,该值表示所有维度的数组中的元素总数。 |
5 |
Rank |
获取数组的秩(维度)。 |
Array 类的方法
序号 |
方法 |
描述 |
1 |
Clear |
根据元素的类型,设置数组中某个范围的元素为零、为 false 或者为 null。 |
2 |
Copy(Array, Array, Int32) |
从数组的第一个元素开始复制某个范围的元素到另一个数组的第一个元素位置。长度由一个 32 位整数指定。 |
3 |
CopyTo(Array, Int32) |
从当前的一维数组中复制所有的元素到一个指定的一维数组的指定索引位置。索引由一个 32 位整数指定。 |
4 |
GetLength |
获取一个 32 位整数,该值表示指定维度的数组中的元素总数。 |
5 |
GetLongLength |
获取一个 64 位整数,该值表示指定维度的数组中的元素总数。 |
6 |
GetLowerBound |
获取数组中指定维度的下界。 |
7 |
GetType |
获取当前实例的类型。从对象(Object)继承。 |
8 |
GetUpperBound |
获取数组中指定维度的上界。 |
9 |
GetValue(Int32) |
获取一维数组中指定位置的值。索引由一个 32 位整数指定。 |
10 |
IndexOf(Array, Object) |
搜索指定的对象,返回整个一维数组中第一次出现的索引。 |
11 |
Reverse(Array) |
逆转整个一维数组中元素的顺序。 |
12 |
SetValue(Object, Int32) |
给一维数组中指定位置的元素设置值。索引由一个 32 位整数指定。 |
13 |
Sort(Array) |
使用数组的每个元素的 IComparable 实现来排序整个一维数组中的元素。 |
14 |
ToString |
返回一个表示当前对象的字符串。从对象(Object)继承。 |
using System; namespace ArrayApplication {class MyArray{static void Main(string[] args){int[] list = { 34, 72, 13, 44, 25, 30, 10 };int[] temp = list;Console.Write("原始数组: ");//原始数组: 34 72 13 44 25 30 10foreach (int i in list){Console.Write(i + " ");}Console.WriteLine();// 逆转数组 Array.Reverse(temp);Console.Write("逆转数组: ");//逆转数组: 10 30 25 44 13 72 34foreach (int i in temp){Console.Write(i + " ");}Console.WriteLine();// 排序数组 Array.Sort(list);Console.Write("排序数组: ");//排序数组: 10 13 25 30 34 44 72foreach (int i in list){Console.Write(i + " ");}Console.WriteLine();Console.ReadKey();}} }
转载于:https://www.cnblogs.com/Chary/p/No0000EB.html
[No0000EB]C# 数组(Array)相关推荐
- PIL中的Image和numpy中的数组array相互转换
PIL中的Image和numpy中的数组array相互转换 array转换成image 1 Image.fromarray(np.uint8(img)) https://www.cnblogs.com ...
- 元组Tuple、数组Array、映射Map
一.元组Tuple 元组Tuple是不同类型的值的聚集,元组的值将单个的值包含在圆括号中来构成,元组可以包含一个不同类型的元素 如 val riple = (100, "Scala" ...
- PHP删除数组(array一维)中指定的某个值 (转)
2019独角兽企业重金招聘Python工程师标准>>> PHP删除数组(array一维)中指定的某个值 PHP删除数组(array一维)中指定的某个值 根据指定的值删除: $stu ...
- php 判断类型array,判断一个变量是数组Array类型的方法_javascript技巧
在很多时候,我们都需要对一个变量进行数组类型的判断.JavaScript中如何判断一个变量是数组Array类型呢?我最近研究了一下,并分享给大家,希望能对大家有所帮助. JavaScript中检测对象 ...
- Java ArrayList和Vector、LinkedList与ArrayList、数组(Array)和列表集合(ArrayList)的区别...
ArrayList和Vector的区别 ArrayList与Vector主要从二方面来说. 一.同步性: Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的. ...
- php怎样解析数组,PHP 数组 Array 解析
官方介绍 PHP 数组实际上是一个有序的映射(map),映射是一种把多个值(values)关联到对应的多个键(keys)的类型.这种映射类型在很多方面做了优化,因此可以把它当成真正的数组(就是上面说的 ...
- C语言实现数组Array(附完整源码)
C语言实现数组Array 数组定义 实现以下18个接口 完整头文件 完整源文件 main 测试文件 数组定义 typedef struct CArray{int *array;int size;} C ...
- concat合并的数组会有顺序么_JS数组 Array
Arraydeveloper.mozilla.org JS没有真正数组,数组实际上是一种特殊的对象 创建数组的方法: let arr = [1,2,3]; // let arr = new Arra ...
- JAVA中数组Array与List互转
List<String> list = new ArrayList<String>(); String[] array = new String[10]; Set<Str ...
- Python 列表list与数组array的区别
1. 列表list与数组array的定义: 列表是由一系列按特定顺序排列的元素组成,可以将任何东西加入列表中,其中的元素之间没有任何关系: Python中的列表(list)用于顺序存储结构.它可以方便 ...
最新文章
- HubbleDotNet 开源全文搜索数据库项目--为数据库现有表或视图建立全文索引(三) 多表关联全文索引模式...
- C++中max,min函数,以及vector字符未定义问题(未声明的标志符)
- 数据预处理(part3)--缺失值处理和区间化
- 安装libsvm工具包
- 论文解读丨基于局部特征保留的图卷积神经网络架构(LPD-GCN)
- java nio 思维导图
- vue 萤石云视频监控对接
- Ubuntu 14.04下360/小米/百度等随身Wifi驱动安装方法
- 1分钟了解微信收款商业版
- 13.图像识别与文字处理
- 企业微信聊天记录如何转移到新手机上?
- excel不同文件表格批量加表头vba_用Excel VBA实现多文件夹内文件加入表头 遍历文件...
- iOS开发面试和底层学习视频整理合集
- 中国混合现实产业调研分析及发展战略研究报告2021-2027年版
- 一切业务数据化,一切数据业务化
- 2021年焊工(初级)考试及焊工(初级)考试内容
- iapp退出软件按钮代码_吱呀怎么退出登录-吱呀APP退出登录的方法
- PhpSpreadsheet导入
- 事件冒泡、捕获?如何阻止
- 第3节 三个败家子(3)——被忽略的刘备之子
热门文章
- PacketFence ZEN 4.0.1 发布,网络接入控制
- Got error ‘parentheses not balanced‘ from regexp
- 心法利器[57] | 文本多分类问题经验
- 【情感分析】华为云细粒度文本情感分析及应用
- 【论文解读】如何在只有词典的情况下提升NER落地效果
- 理论到实践带你了解情感分析、信息抽取、搜索推荐等NLP相关任务
- 【NLP】近期必读ICLR 2021相关论文
- 【面经】字节算法面试三面
- 【论文解读】AAAI 2020 持续学习语义理解框架ERNIE 2.0
- 高校里的你值得关注的最强大脑