1. 程式人生 > >C# 數組實例介紹(圖文)

C# 數組實例介紹(圖文)

原創 access 如果 cfb inter 類型 def 浮點 edi

數組即是一組相同類型組合在一起,使用一個通用的名稱,通過分配的下標訪問的數據集合中的元素。

數組是具有相同類型的一組數據。當訪問數組中的數據時,可以通過下標來指明。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綁定數據用法實例

C# 數組實例介紹(圖文)