C# 数组实例介绍(图文)

数组即是一组相同类型组合在一起,使用一个通用的名称,通过分配的下标访问的数据集合中的元素。

数组是具有相同类型的一组数据。当访问数组中的数据时,可以通过下标来指明。c#中数组元素可以为任何数据类型,数组下标从0开始,即第一个元素对应的下标为0,以后逐个递增。数组可以一维也可多维。

一维数组是最基本的数组类型,其声明方法如下:

数据类型 [ ] 数组名 ;

举例:

int [ ] anArray ; // 声明一个整型的一维数组

具有两个维度的数组是二维数组,其声明方法如下:

数据类型 [ , ] 数组名 ;

举例:

int [ , ] anArray ; // 声明一个整型的二维数组

float [ , ]anArrayOfFloats; // 声明一个浮点型的二维数组

string [ , ] anArrayOfStrings; // 声明一个字符串型的二维数组

声明数组变量时,还没有创建数组,还没有为数组中元素分配任何内存空间,因此,声明数组后,需要对数组实例化:

anArray = new int [2,4] ;

anArrayOfStrings = new stirng [2,4] ;

我们也可以用给定的值对数组元素进行初始化。

int [, ] anArray = new int [2, 4] {{1,2,3,4},{5,6,7,8}};

string [, ] anArrayOfStrings = new string [2, 2] {{“某甲”,”某乙”}, {“冠军” ,”亚军” }};

也可使用下列快捷方式:

int [, ] anArray = {{0,1,2,3},{1,2,3,4}};

string [, ] anArrayOfStrings = {{“某甲”,”某乙”}, {“冠军” ,”亚军” }};

在C#语言中,数组为我们提供了一些有用的特性,利用这些特性,我们可以完成一些更高级的功能。

数组名.Length :返回一个整数,该整数表示该数组的所有维数中元素的总数。

数组名.Rank :返回一个整数,该整数表示该数组的维数。

数组名.GetLength(int dimension) :返回一个整数,该整数表示该数组的指定维(由参数dimension指定,维度从零开始)中的元素个数。


4.foreach语句针对数组或集合中的每一个元素,循环运行嵌入语句。


foreach语句的语法格式为:

foreach (数据类型 标识符 in 表达式)

嵌入语句

//包含6个元素的一维整数数组;

int[] mf1=new int[6]; //注意初始化数组的范围,或者指定初值;

//包含6个元素的一维整数数组,初值1,2,3,4,5,6

int[] mf2=new int[6]{1,2,3,4,5,6};

//一维字符串数组,如果提供了初始值设定项,则还可以省略 new 运算符

string[] mf3={“c”,”c++”,”c#”};

//一维对象数组

Object[] mf4 = new Object[5] { 26, 27, 28, 29, 30 };

//二维整数数组,初值mf5[0,0]=1,mf5[0,1]=2,mf5[1,0]=3,mf5[1,1]=4

int[,] mf5=new int[,]{{1,2},{3,4}};

//6*6的二维整型数组

int[,] mf6=new mf[6,6];

下面来看一个一维字符串数组的遍历

using System;
public class MikeCat
{
static void PrintArray(string[] arr)
{
//打印数组元素,arr.Length 表示数组元素的个数
for(int i=0;i<arr.Length;i++)
{
Console.WriteLine("arr[{0}]={1}",i,arr[i]);
}
}
public static void Main()
{
string[] arr={"c","c++","c#"};
//将数组作为一个参数传递
PrintArray(arr);
}
} 

程序结果:arr[0]=c arr[1]=c++ arr[2]=c#

下面来看一个4行2列(4*2)的整型数组的遍历:

using System;
public class MikeCat
{
static void PrintArray(int[,] arr)
{
//通过两次FOR循环遍历二维数组
for(int i=0;i<4;i++)//初始化i作为循环变量,i++实现该变量的自增运算。
//for循环满足条件后执行完循环体一次后执行i++,然后进入下次循环。简单的c语法,这里做简单介绍供初学者学习。(详细可参阅《c# 高级编程4.0》一书)
{
for(int j=0;j<2;j++)
{
Console.WriteLine("arr[{0},{1}]={2}",i,j,arr[i,j]);//打印每个二维数组元素
}
}
}
public static void Main()
{
//主函数
//将数组作为一个参数传递
PrintArray(new int[,]{{1,2},{3,4},{5,6},{7,8}};
}
} 

运行结果:arr[0,0]=1 arr[0,1]=2 arr[1,0]=3 arr[1,1]=4 arr[2,0]=5 arr[2,1]=6 arr[3,0]=7 arr[3,1]=8


数组的属性:

?数组可以是一维、多维或交错的。

?数值数组元素的默认值设置为零,而引用元素的默认值设置为 null。

?交错数组是数组的数组,因此,它的元素是引用类型,初始化为 null。

?数组的索引从零开始:具有 n 个元素的数组的索引是从 0 到 n-1。

?数组元素可以是任何类型,包括数组类型。

?数组类型是从抽象基类型 Array 派生的引用类型。由于此类型实现了 IEnumerable 和 IEnumerable,因此可以对 C# 中的所有数组使用 foreach 迭代。

我对数组的理解:在 C# 中,数组实际上是对象,而不只是像 C 和 C++ 中那样的可寻址连续内存区域

一维数组 :一维数组以线性方式存储固定数目的项,只需一个索引值即可标识任意一个项。

一维数组实例:

static class Program
  {
    static void Main()
    {
      //一维数组
      int[] arry = new int[9] { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
      arry[0] = 2;//第一行为2
      Console.WriteLine(arry);
  }
}

运行结果截图


二维数组实例

//二维数组
      int[,] arry2 = new int[2, 3] { { 1, 2, 3 }, { 4, 5, 6 } };
      arry2[1, 0] = 5;//改变第二列的第一行为5
      for (int i = 0; i < arry2.GetLength(1); i++)
      {
        for (int y = 0; y < arry2.GetLength(1); y++)//第一个for循环遍历二维数组的列,第二个for循环遍历二维数组的行
        {
          Console.Write(arry2[i, y]);
        }
      }

运行结果截图

交错数组实例

//交错数组
     int[][] arry3 = new int[3][];//交错数组必须指定下标的个数
     arry3[0] = new int[] { 0, 1, 2, 4 };
     arry3[1] = new int[] { 3, 4, 5, 6 };
     arry3[2] = new int[] { 4, 8, 9 };
     for (int x = 0; x < arry3.Length; x++)
     {
       for (int z = 0; z < arry3[x].Length; z++)
       {
         Console.Write(arry3[x][z]);
       }
       Console.WriteLine();//以inti的数组元素为准进行换行.
     }

运行结果截图

C# 还提供 foreach 语句。该语句提供一种简单、明了的方法来循环访问数组的元素,看下面实例。

static void Main()
    {
int [] arry4=new int[100];
      foreach (int a in arry)
      {
        Console.Write(arry);
      }
}

运行结果截图

源代码下载地址:

除声明外,跑步客文章均为原创,转载请以链接形式标明本文地址
  C# 数组实例介绍(图文)

本文地址:  http://www.paobuke.com/develop/c-develop/pbk23574.html

相关内容

C# ?ù?Y±í????êy?¢??êy?ó??2?í???é?

C#实现Access通用访问类OleDbHelper完整实例

举例讲解C#编程中对设计模式中的单例模式的运用

C#留言时间格式化


C#实现最完整的文件和目录操作类实例

C#中sleep和wait的区别分析

C#进行文件读写、创建、复制、移动、删除的方法

winform中的ListBox和ComboBox绑定数据用法实例

时间: 2024-10-23 09:26:40

C# 数组实例介绍(图文)的相关文章

Cocos2d-x中__Array容器以及实例介绍

__Array类在Cocos2d-x 2.x时代它就是CCArray类.它是模仿Objective-C中的NSArray类而设计的,通过引用计数管理内存.__Array继承于Ref类,因此它所能容纳的是Ref及子类所创建的对象指针. 1.创建__Array对象创建__Array对象有很多函数,下面是总结常用的函数:?static __Array* create().创建__Array.?static __Array* create(Ref* object, -).使用一系列Ref创建__Arra

vue2+vuex+vue-router 快速入门(三) vue 实例介绍

vue 实例介绍 vue 实例分两种,一种为组件实例,另外一种为根实例.组件实例负责创建个性化组件.而根实例负责把组件渲染到指定的真实的 DOM 结构中.并且 vue 为我们提供了一种特殊的文件格式 .vue 来创建 组件实例..vue 文件格式如下: *.vue <template> ... </template> <script> export default { data(){ return {} } } </script> <style lan

Cocos2d-x中__Dictionary容器以及实例介绍

__Dictionary类在Cocos2d-x 2.x时代它就是CCDictionary类,它是模仿Objective-C中的NSDictionary类而设计的,通过引用计数管理内存.__Dictionary继承于Ref类,因此它所能容纳的是Ref及子类所创建的对象指针. 1.创建__Dictionary对象 创建__Dictionary对象有很多函数,下面是总结常用的函数: static __Dictionary* create().创建__ Dictionary. static __Dict

实例介绍Cocos2d-x物理引擎:HelloPhysicsWorld

我们通过一个实例介绍一下,在Cocos2d-x 3.x中使用物理引擎的开发过程,熟悉这些API的使用.这个实例的运行后的场景,当场景启动后,玩家可以触摸点击屏幕,每次触摸时候,就会在触摸点生成一个新的精灵,精灵的运行是自由落体运动. HelloPhysicsWorld实例 使用物理引擎的一般步骤,如下图所示. 这个过程与上帝创建世界的过程类似,上帝首先创建了世界,然后为世界指定了边界,否则万物就会掉到世界之外的混沌里去了,最后上帝创建了万物.当然这只是一个最基本的步骤,有的时候还需要碰撞检测和使

spring接收对象数组实例

JS var param= new Array(); var one= new Object; one.id = '1'; one.name= 'simba1'; param.push(one); var two= new Object; two.id = '2'; two.name= 'simba2'; param.push(two); $.ajax({ async : false, cache : false, type : 'POST', dataType:"json", con

H3 BPM门户操作说明及实例介绍

一. H3 BPM部件介绍 H3_V9.0门户功能主要由两部分功能组成:前台展示和后台管理: 1. 前台展示 前台展示参考sharepoint部件管理,用于将用户添加的webpart部件在页面上进行展示:如图1. 图1 门户界面 1.1 展现模式 前台展现模式有两种,当以管理员账号登陆时,模块管理提供浏览和设计两种模式.浏览模式用于展现部件内容:设计模式用于部件设计,此模式下提供部件的增加.删除.属性设置.顺序调整功能.见图2.图3:普通用户只有浏览模式. 图2 浏览模式 图3 设计模式 1.2

实例介绍Cocos2d-x中Box2D物理引擎:HelloBox2D

我们通过一个实例介绍一下,在Cocos2d-x 3.x中使用Box2D物理引擎的开发过程,熟悉这些API的使用.这个实例运行后的场景如图所示,当场景启动后,玩家可以触摸点击屏幕,每次触摸时候,就会在触摸点生成一个新的精灵,精灵的运行自由落体运动. HelloBox2D实例 使用Box2D引擎进行开发过程,如图12-15所示.下面我们就按照这个步骤介绍一下代码部分.首先看一下看HelloWorldScene.h文件,它的代码如下: [html] view plaincopy #ifndef __H

Java 代码优化过程的实例介绍

衡量程序的标准 衡量一个程序是否优质,可以从多个角度进行分析.其中,最常见的衡量标准是程序的时间复杂度.空间复杂度,以及代码的可读性.可扩展性.针对程序的时间复杂度和空间复杂度,想要优化程序代码,需要对数据结构与算法有深入的理解,并且熟悉计算机系统的基本概念和原理:而针对代码的可读性和可扩展性,想要优化程序代码,需要深入理解软件架构设计,熟知并会应用合适的设计模式. 首先,如今计算机系统的存储空间已经足够大了,达到了 TB 级别,因此相比于空间复杂度,时间复杂度是程序员首要考虑的因素.为了追求高

XSD(XML Schema Definition)用法实例介绍以及C#使用xsd文件验证XML格式

XSD(XML Schema Definition)用法实例介绍以及C#使用xsd文件验证XML格式 http://blog.csdn.net/gdjlc/article/details/11374787 2013-09-08 12:16 2824人阅读 评论(0) 收藏 举报 分类: XML(5) 版权声明:本文为博主原创文章,未经博主允许不得转载. XML Schema 语言也称作 XML Schema 定义(XML Schema Definition,XSD),作用是定义 XML 文档的合