這個一直沒有具體地區分到底怎么,請大佬們幫助,感謝
uj5u.com熱心網友回復:
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# 支持一維陣列、多維陣列(矩形陣列)和陣列的陣列(交錯的陣列)。下面的示例展示如何宣告不同型別的陣列:
一維陣列:
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++)
{
scores[x] = new byte[4];
}
還可以有更大的陣列。例如,可以有三維的矩形陣列:
int[,,] buttons = new int[4,5,3];
甚至可以將矩形陣列和交錯陣列混合使用。例如,下面的代碼宣告了型別為 int 的二維陣列的三維陣列的一維陣列。
int[][,,][,] numbers;
初始化陣列
C# 通過將初始值括在大括號 ({}) 內為在宣告時初始化陣列提供了簡單而直接了當的方法。下面的示例展示初始化不同型別的陣列的各種方法。
注意 如果在宣告時沒有初始化陣列,則陣列成員將自動初始化為該陣列型別的默認初始值。另外,如果將陣列宣告為某型別的欄位,則當實體化該型別時它將被設定為默認值 null。
一維陣列
int[] numbers = new int[5] {1, 2, 3, 4, 5};
string[] names = new string[3] {"Matt", "Joanne", "Robert"};
可省略陣列的大小,如下所示:
int[] numbers = new int[] {1, 2, 3, 4, 5};
string[] names = new string[] {"Matt", "Joanne", "Robert"};
如果提供了初始值設定項,則還可以省略 new 運算子,如下所示:
int[] numbers = {1, 2, 3, 4, 5};
string[] names = {"Matt", "Joanne", "Robert"};
多維陣列
int[,] numbers = new int[3, 2] { {1, 2}, {3, 4}, {5, 6} };
string[,] siblings = new string[2, 2] { {"Mike","Amy"}, {"Mary","Albert"} };
可省略陣列的大小,如下所示:
int[,] numbers = new int[,] { {1, 2}, {3, 4}, {5, 6} };
string[,] siblings = new string[,] { {"Mike","Amy"}, {"Mary","Albert"} };
如果提供了初始值設定項,則還可以省略 new 運算子,如下所示:
int[,] numbers = { {1, 2}, {3, 4}, {5, 6} };
string[,] siblings = { {"Mike", "Amy"}, {"Mary", "Albert"} };
交錯的陣列(陣列的陣列)
可以像下例所示那樣初始化交錯的陣列:
int[][] numbers = new int[2][] { new int[] {2,3,4}, new int[] {5,6,7,8,9} };
可省略第一個陣列的大小,如下所示:
int[][] numbers = new int[][] { new int[] {2,3,4}, new int[] {5,6,7,8,9} };
-或-
int[][] numbers = { new int[] {2,3,4}, new int[] {5,6,7,8,9} };
請注意,對于交錯陣列的元素沒有初始化語法。
訪問陣列成員
訪問陣列成員可以直接進行,類似于在 C/C++ 中訪問陣列成員。例如,下面的代碼創建一個名為 numbers 的陣列,然后向該陣列的第五個元素賦以 5:
int[] numbers = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0};
numbers[4] = 5;
下面的代碼宣告一個多維陣列,并向位于 [1, 1] 的成員賦以 5:
int[,] numbers = { {1, 2}, {3, 4}, {5, 6}, {7, 8}, {9, 10} };
numbers[1, 1] = 5;
下面宣告一個一維交錯陣列,它包含兩個元素。第一個元素是兩個整數的陣列,第二個元素是三個整數的陣列:
int[][] numbers = new int[][] { new int[] {1, 2}, new int[] {3, 4, 5}
};
下面的陳述句向第一個陣列的第一個元素賦以 58,向第二個陣列的第二個元素賦以 667:
numbers[0][0] = 58;
numbers[1][1] = 667;
陣列是物件
在 C# 中,陣列實際上是物件。System.Array 是所有陣列型別的抽象基型別。可以使用 System.Array 具有的屬性以及其他類成員。這種用法的一個示例是使用“長度”(Length) 屬性獲取陣列的長度。下面的代碼將 numbers 陣列的長度(為 5)賦給名為 LengthOfNumbers 的變數:
int[] numbers = {1, 2, 3, 4, 5};
int LengthOfNumbers = numbers.Length;
System.Array 類提供許多有用的其他方法/屬性,如用于排序、搜索和復制陣列的方法。
對陣列使用 foreach
C# 還提供 foreach 陳述句。該陳述句提供一種簡單、明了的方法來回圈訪問陣列的元素。例如,下面的代碼創建一個名為 numbers 的陣列,并用 foreach 陳述句回圈訪問該陣列:
int[] numbers = {4, 5, 6, 1, 2, 3, -2, -1, 0};
foreach (int i in numbers)
{
System.Console.WriteLine(i);
}
由于有了多維陣列,可以使用相同方法來回圈訪問元素,例如:
int[,] numbers = new int[3, 2] {{9, 99}, {3, 33}, {5, 55}};
foreach(int i in numbers)
{
Console.Write("{0} ", i);
}
該示例的輸出為:
9 99 3 33 5 55
不過,由于有了多維陣列,使用嵌套 for 回圈將使您可以更好地控制陣列元素。
uj5u.com熱心網友回復:
C#需要new,C語言直接定義就可以了。因為C# 的陣列是一個物件,只能是參考,不能作為內嵌型別使用。
C#的陣列是有長度的,而C語言沒有長度的概念。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/106034.html
標籤:C#
