C#數組
數組是一種存儲相同類型元素的固定大小順序集合。數組用於存儲數據集合,但一般會將數組視爲存儲在連續存儲器位置的相同類型的變量的集合。
如果要存儲表示100
名稱學生的分數,需要獨立地聲明100
整數變量。例如:number0
,number1
,...
, number100
這樣單個獨立變量。而如果使用一個數組變量來表示就省事多了。例如,首先聲明數組:numbers
,使用numbers[0]
,numbers[1]
和...
,numbers[99]
來表示單個變量,數組中的元素可通過索引來訪問。
所有數組是由連續的內存位置組成。最低的地址對應於第一個元素,而最後一個元素的地址最高。
聲明數組
要在 C# 中聲明一個數組,可以使用以下語法:
datatype[] arrayName;
其中 -
- datatype - 用於指定數組中元素的類型。
- [] - 指定數組序號,
rank
指定數組的大小。 - arrayName - 指定數組的名稱。
例如,
double[] balance;
初始化數組
聲明數組不會將的數組初始化到內存中。將數組變量初始化時,可以爲數組指定值。
數組是一個引用類型,因此需要使用new
關鍵字來創建數組的實例。 例如,
double[] balance = new double[10];
數組賦值
可以通過使用索引數爲各個數組元素分配值,如:
double[] balance = new double[10];
balance[0] = 1500.0;
balance[1] = 1000.0;
balance[2] = 2000.0;
也可以在聲明時爲數組指定值,如下所示:
double[] balance = { 240.08, 523.19, 121.01};
還可以在創建時初始化數組,如下所示:
int [] marks = new int[5] { 89, 98, 97, 87, 85};
也可以省略數組的大小,如下所示:
int [] marks = new int[] { 100, 97, 96, 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 is an array of 10 integers */
int i,j;
/* initialize elements of array n */
for ( i = 0; i < 10; i++ )
{
n[ i ] = i + 100;
}
/* output each array element's value */
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 is an array of 10 integers */
/* initialize elements of array n */
for ( int i = 0; i < 10; i++ )
{
n[i] = i + 100;
}
/* output each array element's value */
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# 支持多維數組,它們是數組的數組。
將數組傳遞給函數
可以通過指定數組的名稱而不使用索引,將數組傳遞給函數。
參數數組
這用於將未知數量的參數傳遞給函數。
Array類
在System
命名空間中定義,它是所有數組的基類,並提供了處理數組的各種屬性和方法。