陣列(一維陣列 二維陣列)

2022-09-15 05:15:08 字數 3559 閱讀 6469

陣列概述

c# 陣列從零開始建立索引,即陣列索引從零開始。c# 中陣列的工作方式與在大多數其他流行語言中的工作方式類似。但還有一些差異應引起注意。

這些其實和泛型有些類似,陣列的操作沒有泛型方便,但是效能卻不是泛型所能比擬的

宣告陣列時,方括號() 必須跟在型別後面,而不是識別符號後面。在c# 中,將方括號放在識別符號後是不合法的語法。

int table; // not int table; 

另一細節是,陣列的大小不是其型別的一部分,而在c 語言中它卻是陣列型別的一部分。這使您可以宣告乙個陣列並向它分配int 物件的任意陣列,而不管陣列長度如何。

int numbers; // declare numbers as an int array of any size

numbers = new int[10];  // numbers is a 10-element array

numbers = new int[20];  // now it's a 20-element array

宣告陣列

c# 支援一維陣列、多維陣列(矩形陣列)和陣列的陣列(交錯的陣列)。下面的示例展示如何宣告不同型別的陣列:

陣列的定義

1、陣列裡面的內容必須是同一型別

2、資料必須有長度限制

一維陣列:

int numbers;
多維陣列:

string[,] names;
陣列的陣列(交錯的):

byte scores;
宣告陣列(如上所示)並不實際建立它們。在c# 中,陣列是物件,必須進行例項化。下面的示例展示如何建立陣列:

一維陣列

int numbers = new int[5];
多維陣列

string[,] names = new string[5,4];
陣列的陣列(交錯的):

byte scores = new byte[5];
for (int x = 0; x < scores.length; x++)
還可以有更大的陣列。例如,可以有三維的矩形陣列:

int[,,] buttons = new int[4,5,3];
甚至可以將矩形陣列和交錯陣列混合使用。例如,下面的**宣告了型別為int的二維陣列的三維陣列的一維陣列。

int[,,][,] numbers;
陣列的初始化

c# 通過將初始值括在大括號({}) 內為在宣告時初始化陣列提供了簡單而直接了當的方法。下面的示例展示初始化不同型別的陣列的各種方法。

注意如果在宣告時沒有初始化陣列,則陣列成員將自動初始化為該陣列型別的預設初始值。另外,如果將陣列宣告為某型別的字段,則當例項化該型別時它將被設定為預設值null。

一維陣列

int numbers = new int[5] ;
string names = new string[3] ;
可省略陣列的大小,如下所示:

int numbers = new int ;
string names = new string ;
如果提供了初始值設定項,則還可以省略new

運算子,如下所示:

int numbers = ;
string names = ;
多維陣列
int[,] numbers = new int[3, 2] , ,  };
string[,] siblings = new string[2, 2] ,  };
可省略陣列的大小,如下所示:

int[,] numbers = new int[,] , ,  };
string[,] siblings = new string[,] ,  };
如果提供了初始值設定項,則還可以省略new運算子,如下所示:

int[,] numbers = , ,  };
string[,] siblings = ,  };
交錯的陣列(陣列的陣列)

可以像下例所示那樣初始化交錯的陣列:

int numbers = new int[2] , new int  };
可省略第乙個陣列的大小,如下所示:

int numbers = new int , new int  };
-或-

int numbers = , new int  };
請注意,對於交錯陣列的元素沒有初始化語法。

訪問陣列成員可以直接進行。例如,下面的**建立乙個名為numbers的陣列,然後向該陣列的第五個元素賦以5:

int numbers = ;
numbers[4] = 5;
下面的**宣告乙個多維陣列,並向位於[1, 1]的成員賦以5

int[,] numbers = , , , ,  };
numbers[1, 1] = 5;
下面宣告乙個一維交錯陣列,它包含兩個元素。第乙個元素是兩個整數的陣列,第二個元素是三個整數的陣列:

int numbers = new int , new int
};
下面的語句向第乙個陣列的第乙個元素賦以58,向第二個陣列的第二個元素賦以667:

numbers[0][0] = 58;
numbers[1][1] = 667;
陣列是物件
在c# 中,陣列實際上是物件。system.array是所有陣列型別的抽象基型別。可以使用system.array具有的屬性以及其他類成員。這種用法的乙個示例是使用「長度」(length)屬性獲取陣列的長度。下面的**將numbers陣列的長度(為5)賦給名為lengthofnumbers的變數:

int numbers = ;
int lengthofnumbers = numbers.length;
system.array類提供許多有用的其他方法/屬性,如用於排序、搜尋和複製陣列的方法。

由於有了多維陣列,可以使用相同方法來迴圈訪問元素,例如:

int[,] numbers = new int[3, 2] , , };
foreach(int i in numbers)
", i);
}
該示例的輸出為:

9 99 3 33 5 55
不過,由於有了多維陣列,使用巢狀for迴圈將使您可以更好地控制陣列元素。

Javascript 陣列 一維陣列 二維陣列

建立陣列語法 var myarray new array 我們建立陣列的同時,還可以為陣列指定長度,長度可任意指定。var myarray new array 8 建立陣列,儲存8個資料。我們還可以用簡單的方法建立陣列和賦值 第一種方法 var myarray new array 66,80,90,...

一維陣列轉為二維陣列

真是應該補一補資料結構,真高這個程式!do while not eof 1 連續讀入乙個txt檔案到inputdata中 line input 1,inputdata if inputdata then 分割為一維陣列splitdata splitdata split inputdata,end i...

一維陣列轉二維陣列

假設你一維陣列的大小為100 你需要把它拆分為20 5的乙個二維矩陣。不妨這樣去實現 假設一維陣列的下標為x,可以把它在邏輯上轉換為二維陣列的下標 m x 5 n x 5 比如你要找第一行第二列的元素,那在一維陣列中就是a 1 轉化為二維座標就是b 0 1 其實多維陣列和一維陣列一樣,在計算機中都是...