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 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告
© . All rights reserved.