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 屬性是一個有用的屬性。它使我們能夠處理幾乎任何大小的陣列,唯一的限制是系統可用的記憶體量。它以長整數值的形式返回陣列可以容納的元素數量。

更新於: 2023年4月25日

351 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告