有關數組的定義我已經在 C#學習日記12---引用類型 中說到過了,這裡就不羅嗦了,總的說來 數組 就是一組類型相同的有序數據,System.Array類是所有數組的基類,(好比 System.object 是所有類的基類一樣)。
int[] arr; //這裡我們只是聲明了一個數組,沒有初始化,還不能用。比如arr[0] = 1會報錯
由於以前寫慣了C定義數組的方式,所以我寫C#的時候時常會這樣定義 int arr[]; 這樣寫對於C#來說是不合法的。
經過上面的步驟我們已經成功的聲明了一個一維數組,C#中數組可以是一維也可以是多維的,同樣也支持矩陣和參差不齊的數組,由於是新手我們先從一維數組學起,後面會涉及一些多維度的。
對數組的初始化實質上是在為數組開辟存儲空間以及賦予初始值(默認初始值為0),當然也可以在初始化時對數組賦予指定的值。由於數組是引用類型的,所以需要使用new語句來創建數組實例:
arr = new int[5];
我們在初始化的時候在‘[]’裡面定義了數組元素個數(5個),它的個數可以通過.Length訪問 arry.Length;數組第一個元素對應的下標是0,後面依次+1。
經過上面的2步我們已經成功創建了一個空間大小為 5*size(int) 的一維數組並給裡面元素賦初始值0,比如我們輸出arr中的第二個元素。Console.WriteLine(arr[1]);(第一個元素下標對應0,第二個對應1):
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Test { class Program { static void Main(string[] args) { int[] arr; //聲明數組 arr = new int[5]; //初始化 int i =arr.Length; //獲取元素個數 Console.WriteLine(value:{0} Length:{1},arr[1],i); //輸出第二個元素的值,以及元素個數 } } }
結果如下:
這裡arr[1]的值是使用的默認值0,要人為的賦值可以有2種途徑:
1. 初始化的時候主動賦值;
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Test { class Program { static void Main(string[] args) { int[] arr; //聲明數組 arr = new int[5]{1,2,3,4,5}; // 初始化並賦值 int i =arr.Length; //獲取元素個數 Console.WriteLine(value:{0} Length:{1},arr[1],i); //輸出第二個元素的值,以及元素個數 } } }
其實在初始化賦值的時候還可以這樣:
int[] arr = {1,2,3,4,5} //連大小都不用寫了
2. 訪問每一個元素並更改默認值;
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Test { class Program { static void Main(string[] args) { int[] arr; //聲明數組 arr = new int[5]; // 初始化並賦值 int i =arr.Length; //獲取元素個數 //挨個訪問並賦值 1,2,3,4,5 for (int j=0;j
foreach()語句:
在上面的實例中,我們使用一個 for 循環來訪問每個數組元素並賦值。現在學習使用一個foreach 語句來遍歷數組並輸出所有結果。foreach語句用於循環訪問集合,以獲取您需要的信息,但不能用於在源集合中添加或移除項,否則可能產生不可預知的副作用。 如果需要在源集合中添加或移除項,請使用 for 循環。
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Test { class Program { static void Main(string[] args) { int[] arr; //聲明數組 arr = new int[5]; // 初始化並賦值 int i =arr.Length; //獲取元素個數 //挨個訪問並賦值 1,2,3,4,5 for (int j=0;j運行結果:
有關一維數組的用法就簡單的介紹在這裡了,後面還會有多維數組、交錯數組、參數數組、Array類的學習,請大家多多支持,您的評論與建議是我完善自我的動力……^_^……謝謝……