C# 数组(Array)

数组是一个存储相同类型元素的固定大小的顺序集合。数组是用来存储数据的集合,通常认为数组是一个同一类型变量的集合。

声明数组变量并不是声明 number0、number1、...、number99 一个个单独的变量,而是声明一个就像 numbers 这样的变量,然后使用 numbers[0]、numbers[1]、...、numbers[99] 来表示一个个单独的变量。数组中某个指定的元素是通过索引来访问的。

所有的数组都是由连续的内存位置组成的。最低的地址对应第一个元素,最高的地址对应最后一个元素。

声明数组

在 C# 中声明一个数组,您可以使用下面的语法:

datatype[] arrayName;

其中,

datatype 用于指定被存储在数组中的元素的类型。

[ ] 指定数组的秩(维度)。秩指定数组的大小。

arrayName 指定数组的名称。

例如:

double[] balance;

初始化数组

声明一个数组不会在内存中初始化数组。当初始化数组变量时,您可以赋值给数组。

数组是一个引用类型,所以您需要使用 new 关键字来创建数组的实例。

例如:

double[] balance = new double[10];

赋值给数组

您可以通过使用索引号赋值给一个单独的数组元素,比如:

double[] balance = new double[10];

balance[0] = 4500.0;

您可以在声明数组的同时给数组赋值,比如:

double[] balance = { 2340.0, 4523.69, 3421.0};

您也可以创建并初始化一个数组,比如:

int [] marks = new int[5] { 99, 98, 92, 97, 95};

在上述情况下,你也可以省略数组的大小,比如:

int [] marks = new int[] { 99, 98, 92, 97, 95};

您也可以赋值一个数组变量到另一个目标数组变量中。在这种情况下,目标和源会指向相同的内存位置:

int [] marks = new int[] { 99, 98, 92, 97, 95};

int[] score = marks;

当您创建一个数组时,C# 编译器会根据数组类型隐式初始化每个数组元素为一个默认值。例如,int 数组的所有元素都会被初始化为 0。

访问数组元素

元素是通过带索引的数组名称来访问的。这是通过把元素的索引放置在数组名称后的方括号中来实现的。例如:

double salary = balance[9];

下面是一个实例,使用上面提到的三个概念,即声明、赋值、访问数组:

实例

using System;

namespace ArrayApplication

{

class MyArray

{

static void Main(string[] args)

{

int []  n = new int[10]; /* n 是一个带有 10 个整数的数组 */

int i,j;

/* 初始化数组 n 中的元素 */

for ( i = 0; i < 10; i++ )

{

n[ i ] = i + 100;

}

/* 输出每个数组元素的值 */

for (j = 0; j < 10; j++ )

{

Console.WriteLine("Element[{0}] = {1}", j, n[j]);

}

Console.ReadKey();

}

}

}

当上面的代码被编译和执行时,它会产生下列结果:

Element[0] = 100

Element[1] = 101

Element[2] = 102

Element[3] = 103

Element[4] = 104

Element[5] = 105

Element[6] = 106

Element[7] = 107

Element[8] = 108

Element[9] = 109

使用 foreach 循环

在前面的实例中,我们使用一个 for 循环来访问每个数组元素。您也可以使用一个 foreach 语句来遍历数组。

实例

using System;

namespace ArrayApplication

{

class MyArray

{

static void Main(string[] args)

{

int []  n = new int[10]; /* n 是一个带有 10 个整数的数组 */

/* 初始化数组 n 中的元素 */

for ( int i = 0; i < 10; i++ )

{

n[i] = i + 100;

}

/* 输出每个数组元素的值 */

foreach (int j in n )

{

int i = j-100;

Console.WriteLine("Element[{0}] = {1}", i, j);

}

Console.ReadKey();

}

}

}

当上面的代码被编译和执行时,它会产生下列结果:

Element[0] = 100

Element[1] = 101

Element[2] = 102

Element[3] = 103

Element[4] = 104

Element[5] = 105

Element[6] = 106

Element[7] = 107

Element[8] = 108

Element[9] = 109

C# 数组细节

在 C# 中,数组是非常重要的,且需要了解更多的细节。下面列出了 C# 程序员必须清楚的一些与数组相关的重要概念:

概念描述

C# 支持多维数组。多维数组最简单的形式是二维数组。

C# 支持交错数组,即数组的数组。

您可以通过指定不带索引的数组名称来给函数传递一个指向数组的指针。

这通常用于传递未知数量的参数给函数。

在 System 命名空间中定义,是所有数组的基类,并提供了各种用于数组的属性和方法。

c# jarray 长度_C# 数组(Array)相关推荐

  1. c# jarray 长度_C# System.Array.GetLength 方法 - CSharp 参考教程

    System.Array.GetLength 方法例子 下面的示例演示如何使用 GetLength 显示两个具有不同秩的数组的尺寸. using System; public class Sample ...

  2. c# jarray 长度_C# Array 类 | 菜鸟教程

    Array.Sort() 会直接修改原数组,从 foreach (int i in list) 这句可得知. 因此上述实例的演示顺序修改为:原始数组--排序数组--逆转数组,进一步理解该方法. usi ...

  3. cjson 对象是json数组型结构体_C语言 - cJSON解析特定格式 含有数组array类型的数据...

    在ESP32中使用了cJSON库,发现很好用.最近服务器端的JSON格式越来越多样,还是有些注意点,需要做下笔记记录下来. cJSON *MAC_arry = cJSON_GetObjectItem( ...

  4. JS中数组(Array)、Json对象长度(length)获取方法

    JS中数组(Array).Json对象长度(length)获取方法 1.数组 var array = []; var length = array.length; 2.JSON对象 1)方法1: va ...

  5. JS:数组Array的使用方法及获取数组的长度length

    对象分成三种: 内建对象 宿主对象 自定义对象 数组Array也是一个对象,它和普通的对象功能类似,也是用来存储一些值的. 不同的是普通对象是使用字符串作为属性名的,而数组是使用数字来作为索引操作元素 ...

  6. 参数数组长度_JS数组操作方法总结(二)——pop、shift、push、unshift

    数组操作使我们日常使用频率很高的一类方法,今天就数组的操作方法做一个总结. 2. pop() -- 删除数组中的最后一个元素,并返回这个元素 语法:array.pop(); 无参数 返回值:删除数组的 ...

  7. 【C 语言】数组 ( 数组本质 | 数组长度定义 | 数组初始化 | 编译时初始化 | 显式初始化 - 重置内存 )

    文章目录 一.数组本质 二.数组长度定义 三.数组初始化 1.编译时初始化 2.显式初始化 ( 重置内存 ) 一.数组本质 数组本质 : 类型角度 : 从 数组元素 类型角度分析 , 数组是 相同类型 ...

  8. JavaScript创建或填充任意长度的数组

    JavaScript创建或填充任意长度的数组 直接填充法 const arr = [0,0,0]; Array 构造函数 var len = 3; var arr = new Array(len); ...

  9. concat合并的数组会有顺序么_JS数组 Array

    Array​developer.mozilla.org JS没有真正数组,数组实际上是一种特殊的对象 创建数组的方法: let arr = [1,2,3]; // let arr = new Arra ...

最新文章

  1. 从输入URL到页面加载的过程
  2. python limit_Python MySQL Limit
  3. Java虚拟机和Dalvik(android)虚拟机的区别
  4. 怎样自己写一个MVC框架
  5. 深入理解 JVM Class文件格式(一)
  6. 网络爬虫--9.正则表达式
  7. android 教程概要,Android精通教程-第一节Android入门简介
  8. 08-可滚动Widget
  9. 江苏技术师范学院大学机房管理系统[.NET项目]
  10. 详解汇编里的单步中断-T使用寄存器标志位TF和IF
  11. ansible之cron模块
  12. PhotoShop cc 2017安装 zeplin插件
  13. Manadata:用于数据管理的SPSS宏
  14. 时间管理表 - 《待办清单列表》
  15. 汇编中的10H中断int 10h详细说明
  16. js中var self=this的用法解释
  17. unity 回合制_用Unity E3 Goodness制成
  18. SwiftUI实战教程 第二章 BMI计算器
  19. 免费壁纸背景高清图片素材网站
  20. ZUCC_计算机系统原理实验_大作业 bomb 破解

热门文章

  1. JQuery 总结篇
  2. 基于Spark2.x新闻网大数据实时分析可视化系统项目
  3. 人工智能数据集:直升机(2)
  4. clickhouse连接问题解决:Code: 210. DB::NetException: I/O error: Broken pipe, while writing to socket
  5. 期末C语言作业--家庭理财系统
  6. 开发过程中,本地分支和远程跟踪分支发生了diverge
  7. Hibernate 快速入门
  8. 2019 未来杯高校AI挑战赛 区域赛作品
  9. 汽车4S店标准销售流程
  10. 房贷计算器(java)