陣列表示給定類型的固定數量的元素。元素儲存在連續的記憶體區塊中,只要您知道元素的索引,就可以有效率地存取元素。
宣告和初始化陣列的 C# 語法如下 -
// create a string array to hold 5 languages string[] languages = new string[3];
宣告陣列後,您可以使用陣列上的平方符號來填入陣列中的項目。
languages[0] = "csharp"; languages[1] = "visual basic"; languages[2] = "f#";
但是,有一個替代的簡潔語法可以將上述兩個步驟組合在一個步驟中。
string[] languages = new string[] { "csharp", "visual basic", "f#" };
使用 C# 中的隱式類型變量,您可以去掉變數名稱左側的類型,而只使用 var。
var languages = new string[] { "csharp", "visual basic", "f#" };
您可以使用相同的平方表示法來存取陣列中的任何元素。
string language = languages[0]; Console.WriteLine(language); // prints csharp
陣列的 Length 屬性告訴我們該陣列中有多少項。
int count = languages.Length; Console.WriteLine(count); // 3
請務必記住,陣列一旦建立就無法更改其長度。嘗試存取數組邊界之外的元素會引發異常。
string lang = languages[3]; // throws System.IndexOutOfRangeException
如果要循環數組,請使用該語言提供的 for 或 foreach 迴圈。
// for loop for (int i = 0; i < languages.Length; i++){ string l = languages[i]; Console.WriteLine(l); // prints the names of languages in sequence } // foreach loop foreach (string l in languages){ Console.WriteLine(l); // prints the names of languages in sequence }
建立陣列時,C# 編譯器會將元素初始化為其預設值。例如,建立一個整數數組會將每個元素的值設為 0。
var numbers = new int[3]; foreach (int num in numbers){ Console.WriteLine(num); // prints 000 }
當元素屬於值類型時,該類型的每個成員都會指派給其預設值。
Point[] a = new Point[4]; int x = a[2].X; Console.WriteLine(x); // prints 0 public struct Point { public int X, Y; }
但是,對於引用類型,編譯器只是為每個專案建立空引用。
User[] u = new User[4]; int y = u[2].Y; // NullReference exception public class User { public int X, Y; }
要避免該錯誤,您必須明確初始化每個項目,如下所示。
User[] users = new User[5]; for (int i = 0; i < users.Length; i++) // Iterate i from 0 to 999 users[i] = new User();
即時示範
using System; class Program{ static void Main(){ string[] languages = new string[3]; // create a string array to hold 5 languages languages[0] = "csharp"; languages[1] = "visual basic"; languages[2] = "f#"; string[] langugages_two = new string[] { "csharp", "visual basic", "f#" }; var languages_three = new string[] { "csharp", "visual basic", "f#" }; string language = languages[0]; Console.WriteLine(language); // prints csharp int count = languages.Length; // 3 Console.WriteLine(count); //string lang = languages[3]; // throws System.IndexOutOfRangeException // for loop for (int i = 0; i < languages.Length; i++){ string l = languages[i]; Console.WriteLine(l); // prints the names of languages in sequence } // foreach loop foreach (string l in languages){ Console.WriteLine(l); // prints the names of languages in sequence } var numbers = new int[3]; foreach (int num in numbers){ Console.WriteLine(num); // prints 000 } Point[] a = new Point[4]; int x = a[2].X; Console.WriteLine(x); // prints 0 User[] u = new User[4]; //int y = u[2].Y; // NullReference exception User[] users = new User[5]; for (int i = 0; i <users.Length; i++) // Iterate i from 0 to 999 users[i] = new User(); } } public struct Point { public int X, Y; } public class User { public int X, Y; }
csharp 3 csharp visual basic f# csharp visual basic f# 0 0 0 0
以上是數組在 C# 中如何運作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!