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 屬性是一個有用的屬性。它使我們能夠處理幾乎任何大小的陣列,唯一的限制是系統可用的記憶體量。它以長整數值的形式返回陣列可以容納的元素數量。
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP