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);

  i++;

  }

  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 命名空间中定义,是所有数组的基类,并提供了各种用于数组的属性和方法。

  本文转载自:w3cschool

  (编辑:雷林鹏 来源:网络)

雷林鹏分享:C# 数组(Array)的更多相关文章

  1. 雷林鹏分享:Ruby 数组(Array)

    Ruby 数组(Array) Ruby 数组是任何对象的有序的.整数索引的集合.数组中的每个元素都与一个索引相关,并可通过索引进行获取. 数组的索引从 0 开始,这与 C 或 Java 中一样.一个负 ...

  2. 雷林鹏分享:CodeIgniter 数据库操作

    在平时项目开发过程中,除了处理那些繁琐的逻辑过程外,还有一个重要的任务就是对数据库的操作处理.这里总结下自己平时使用CI过程中使用的如何对数据库进行操作处理. 在CI框架中,我们一般会把对数据库的操作 ...

  3. 雷林鹏分享:CodeIgniter常用的数据库操作类

    在 CodeIgniter 中,使用数据库是非常频繁的事情.你可以使用框架自带的数据库类,就能便捷地进行数据库操作. 初始化数据库类 依据你的数据库配置载入并初始化数据库类: $this->lo ...

  4. 雷林鹏分享:C# 索引器(Indexer)

    C# 索引器(Indexer) 索引器(Indexer) 允许一个对象可以像数组一样被索引.当您为类定义一个索引器时,该类的行为就会像一个 虚拟数组(virtual array) 一样.您可以使用数组 ...

  5. 雷林鹏分享:C# 泛型(Generic)

    C# 泛型(Generic) 泛型(Generic) 允许您延迟编写类或方法中的编程元素的数据类型的规范,直到实际在程序中使用它的时候.换句话说,泛型允许您编写一个可以与任何数据类型一起工作的类或方法 ...

  6. 雷林鹏分享:Ruby 数据类型

    Ruby 数据类型 本章节我们将为大家介绍 Ruby 的基本数据类型. Ruby支持的数据类型包括基本的Number.String.Ranges.Symbols,以及true.false和nil这几个 ...

  7. 雷林鹏分享:Ruby 哈希(Hash)

    Ruby 哈希(Hash) 哈希(Hash)是类似 "employee" => "salary" 这样的键值对的集合.哈希的索引是通过任何对象类型的任意键 ...

  8. 雷林鹏分享:Ruby 迭代器

    Ruby 迭代器 迭代器是集合支持的方法.存储一组数据成员的对象称为集合.在 Ruby 中,数组和散列可以称之为集合. 迭代器返回集合的所有元素,一个接着一个.在这里我们将讨论两种迭代器,each 和 ...

  9. 雷林鹏分享:YAF路由问题

    这2天休年假,在家宅着学习研究了YAF框架,用YAF做过APP接口的项目,但是没有用来做过WEB方面的应用.趁着这2天在家想把博客用YAF进行一下改版,目的也想进一步学习一下YAF. 在这过程中遇到不 ...

随机推荐

  1. Office 2016 永久激活

    启示:office突然过期,QWQ,卖电脑的真坑爹,找了好多办法,总结2个不花钱的办法啦. 1>只有30天试用期 Office 2016预览版序列号:NKGG6-WBPCC-HXWMY-6DQG ...

  2. ODAC(V9.5.15) 学习笔记(三)TOraSession(3)

    3. 选项 TOraSession的Options有如下内容 名称 类型 说明 CharLength TCharLength 单个字符的长度,缺省0,表示从服务器获取对应的字符集中单个字符长度 Cha ...

  3. Git学习笔记---协作的一般流程

    一般的操作流程 1.pull 王小坤与另一个同事张大炮一起开发一个项目,张大炮昨天修改了数据库读写的api,优化了执行速度,并把read()函数改名成了Read(),下午下班之前把这些代码push到服 ...

  4. Python实现机器学习算法:AdaBoost算法

    Python程序 ''' 数据集:Mnist 训练集数量:60000(实际使用:10000) 测试集数量:10000(实际使用:1000) 层数:40 ------------------------ ...

  5. shell script 脚本编程

    介绍 Shell脚本编程30分钟入门 Shell 教程 Linux 的 Shell 种类众多,常见的有: Bourne Shell(/usr/bin/sh或/bin/sh) Bourne Again ...

  6. 浅谈 Make 命令

    代码变成可执行文件,叫做编译(compile):先编译这个,还是先编译那个(即编译的安排),叫做构建(build). Make是最常用的构建工具,诞生于1977年,主要用于C语言的项目.但是实际上 , ...

  7. matplotlib python

    #导入包 import matplotlib.pyplot as plt import numpy as np # 从[-1,1]中等距去50个数作为x的取值 x = np.linspace(-1, ...

  8. js try catch 的使用,容错处理

    tag: js try catch 的使用,js容错处理 网友回答: try{ //正常执行 }catch(e/*你感觉会出错的 错误类型*/){ // 可能出现的意外 eg:用户自己操作失误 或者 ...

  9. Go 定长的数组

    1.Go 语言数组的简介 几乎所有的计算机语言都有数组,应用非常的广泛.同样,在 Go 语言中也有数组并且在数组的基础上还衍生出了切片(slice). 数组是一系列同一类型数据的集合,数组中包含的每个 ...

  10. 手把手教你学习R语言

    本文为带大家了解R语言以及分段式的步骤教程! 人们学习R语言时普遍存在缺乏系统学习方法的问题.学习者不知道从哪开始,如何进行,选择什么学习资源.虽然网络上有许多不错的免费学习资源,然而它们多过了头,反 ...