详解c# 数组(Array)

作者:菜鸟教程 时间:2022-04-15 14:19:47 

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

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

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

详解c# 数组(Array)

声明数组

在 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# 支持交错数组,即数组的数组。
传递数组给函数您可以通过指定不带索引的数组名称来给函数传递一个指向数组的指针。
参数数组这通常用于传递未知数量的参数给函数。
Array 类在 System 命名空间中定义,是所有数组的基类,并提供了各种用于数组的属性和方法。

来源:https://www.runoob.com/csharp/csharp-array.html

标签:c#,数组,array
0
投稿

猜你喜欢

  • 详解SpringBoot中如何使用布隆过滤器

    2023-11-10 17:43:06
  • Java基于注解的Excel导出方式

    2021-12-31 04:55:08
  • java求最大公约数与最小公倍数的方法示例

    2023-01-23 03:28:58
  • SpringBoot2.6.x升级后循环依赖及Swagger无法使用问题

    2021-12-02 09:49:43
  • Java 根据某个 key 加锁的实现方式

    2023-10-27 07:54:20
  • Vue3源码解读effectScope API及实现原理

    2023-12-11 19:28:49
  • Java使用新浪微博API通过账号密码方式登陆微博的实例

    2023-09-23 05:35:38
  • Java 反射(Reflect)详解

    2022-09-27 08:34:44
  • springboot中bean的加载顺序问题

    2022-01-04 19:55:57
  • c#和javascript函数相互调用示例分享

    2023-10-08 21:33:52
  • C#生成注册码的实例代码

    2022-05-16 23:35:58
  • java.exe和javaw.exe的区别及使用方法

    2022-08-27 10:03:39
  • 详解OpenCV For Java环境搭建与功能演示

    2023-05-27 09:13:50
  • C# this关键字的四种用法

    2022-10-06 07:09:22
  • 一篇文章彻底搞清楚c#中的委托与事件

    2021-09-07 02:24:03
  • SpringBoot 上传文件判空以及格式检验流程

    2023-01-19 05:07:36
  • Linux中Java开发常用软件安装方法总结

    2022-03-11 16:21:03
  • github上的java项目怎么运行(面向小白)

    2022-12-23 23:29:09
  • 实例讲解Android中的View类以及自定义View控件的方法

    2023-08-11 06:26:42
  • Spring声明式事务和@Aspect的拦截顺序问题的解决

    2023-07-18 12:10:46
  • asp之家 软件编程 m.aspxhome.com