※以下內容皆是新手撰寫,內容可能不完全正確
可愛表情符號挑戰第18天囉~(遭踹下樓梯((砰
寫這篇的用意是要把上一篇C#陣列的幾個概念講完,內容稍多,於是獨立成一篇了。應用方面沒有講那麼多,主要還是介紹定義和簡單的概念。
這篇要講的五個概念:
多維陣列(multidimensional arrays)
C#程式語言支援多維陣列(亦稱作長方陣列),以下是宣告二維陣列(2-dimensional array)跟三維陣列(3-dimensional array)的例子:
string[, ] x; //二維string陣列
int[, , ] y; //三維int陣列
變數名稱喜歡用x、y、z那些,因為本人金魚腦,目前寫比較長的程式碼還會忘記自己把某些變數取啥鬼名字 :D總之,我超爛。
二維陣列是最簡單的多維陣列,可以想成是一連串的一維數列,也可以想成是像九九乘法表那樣,有n行跟m列。
以下是二維陣列的初始化的例子(3列四行):
int[, ] z = new int[3, 4]{
{7,6,5,4},
{0,1,2,3},
{8,9,10,11}
};
獨立出二維陣列中的元素,方法如下(這樣抓出來的是2:
int k = z[1, 2];
不規則陣列(jagged arrays)
不規則陣列的概念是陣列中有陣列,宣告方式如下
int[][] numbers;
跟其他陣列一樣,不規則陣列要先初始化:
int[][] numbers = new int[3][ ]{new int[ ]{1,2}, new int[ ]{3,4,5,6}, new int[ ]{7,8}};
這串看了覺得眼花撩亂的東西是內有三個陣列的陣列numbers,numbers[0]這個陣列有兩個元素,numbers[1]這個陣列有四個元素。學到這裡的時候覺得,難怪隨便寫一寫程式就會跑出bug來,太難避免了(@_@)
將陣列傳給函數(passing arrays to functions)
陣列能作為函數引數:
using System;
namespace Yee {
class Stuff {
double a(int[ ] b, int c) {
//內容
}
Param陣列(Param arrays)
宣告方法偶爾會遇到一個狀況,就是不曉得有幾個引數(arguments)是參數(parameters),而Param陣列就是這種時候派上用場的,裡面可以放入引數,也可以不要放引數,這樣Param陣列的長度就是0。宣告一個方法只能用一個Param陣列,陣列也只能是一維陣列,否則編譯器會顯示error:
using System;
namespace P {
class Param {
public int stuff(params int[] yee) {
//內容
}
}
}
Array類別(array class)
Array類別是C#中所有陣列的基礎類別,處理陣列基本上就是靠這個Array class,而他有很多不同功能的財產(properties),格式是這樣子的<陣列名稱>.<財產>以下是幾個常用財產:
Array.Reverse(a); //將一維陣列a中元素順序全部倒過來
Array.Sort(b); //將一維陣列b中元素照順序排好
目前先這樣了,快暴斃ㄌQwQ,下一回要講的是字串喔~
參考資料:
(a) Tutorialspoint; C# - Arrays
https://www.tutorialspoint.com/csharp/csharp_arrays.htm
(b) Microsoft; Array Class
https://docs.microsoft.com/en-us/dotnet/api/system.array?view=netframework-4.8