C# 中陣列的 LongLength 屬性
在 C# 中,Array 類有一個名為 LongLength 的只讀屬性。它返回一個長整數值,指示陣列可以容納多少個元素。只有等級為 1 或更高的陣列(即不是一維陣列)才能訪問 LongLength 屬性。
雖然 LongLength 屬性提供了一個長整數值,但務必記住,C# 中陣列的最大大小仍然受系統支援的記憶體量限制。如果嘗試構建一個太大的陣列,可能會引發 OutOfMemoryException 異常。
語法
public long LongLength { get; }
Long - 表示陣列中元素數量的 64 位整數值。
C# 中陣列的 LongLength 屬性以長整數值的形式返回陣列中元素的總數。在處理可能包含超過 20 億個元素(32 位整數的最大容量)的大型陣列時,此屬性非常有用。在這種情況下,Length 屬性將返回負值,表示溢位錯誤。LongLength 屬性透過返回長整數值(能夠表示更大值)來解決此問題。
示例
在此程式中,我們建立了一個包含 10 億個整數的陣列,併為每個元素分配值。然後,我們使用 Length 和 LongLength 屬性來獲取陣列中元素的數量。由於整數溢位,Length 屬性返回負數,而 LongLength 屬性以長整數值的形式返回正確的元素數量。
演算法
步驟 1 - 建立任何型別的陣列,例如 int[] abc= new int[1000000000];
步驟 2 - 為陣列元素分配值,例如 abc[0] = 1; abc[1] = 2; ... abc[999999999] = 1000000000;
步驟 3 - 使用 Length 屬性獲取陣列中元素的數量。由於陣列包含超過 20 億個元素,因此這將返回負數,表示整數溢位。
步驟 4 - 使用 LongLength 屬性以長整數值的形式獲取陣列中元素的總數。這將返回正確的數字,即 1000000000。
using System; class Program { static void Main(string[] args) { //initilize an array of 1000000000 elements int[] arr = new int[1000000000]; for (int i = 0; i < arr.Length; i++) //loop to assign values to array you can do this without loop but its a large array so loop is needed { arr[i] = i + 1; } Console.WriteLine("Length: " + arr.Length);// length property Console.WriteLine("LongLength: " + arr.LongLength);//longlength property } }
輸出
Length: 1000000000
示例
您可以計算二維或三維陣列中的元素數量。這有助於您獲得複雜陣列中元素的準確計數。在此示例中,我們將建立一個二維陣列,並使用LongLength屬性計算二維陣列的元素。
步驟 1 - 宣告一個 int 資料型別的二維陣列,並使用一些值對其進行初始化。
步驟 2 - 獲取陣列的 LongLength 屬性。
步驟 3 - 將 LongLength 屬性的值列印到控制檯。
using System; class Program { static void Main(string[] args) { // Declare and initialize a 2-D array of integers int [,] a = new int [3,4] { {0, 1, 2, 3} , {4, 5, 6, 7} , {8, 9, 10, 11} }; // Get the LongLength property of the array long length = a.LongLength; // Print the value of the LongLength property to the console Console.WriteLine("The length of the array is: " + length); } }
輸出
The length of the array is: 12
結論
在處理超出整數限制的大型陣列時,C# 中陣列的 LongLength 屬性是一個有用的屬性。它使我們能夠處理幾乎任何大小的陣列,唯一的限制是系統可用的記憶體量。它以長整數值的形式返回陣列可以容納的元素數量。