C# 中数组的 LongLength 属性

csharpserver side programmingprogramming更新于 2025/8/12 11:07:17

在 C# 中,Array 类具有一个名为 LongLength 的只读属性。它返回一个长整型值,指示数组可容纳的元素数量。只有秩为 1 或 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) {
      //初始化一个包含 1000000000 个元素的数组
      int[] arr = new int[1000000000];       
      for (int i = 0; i < arr.Length; i++) 
      
      //循环为数组分配值您可以在没有循环的情况下执行此操作但它是一个大数组因此需要循环{
         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) {
      // 声明并初始化二维整数数组
      int [,] a = new int [3,4] {
         {0, 1, 2, 3} ,  
         {4, 5, 6, 7} ,  
         {8, 9, 10, 11}   
      };
      
      // 获取数组的 LongLength 属性
      long length = a.LongLength;

      // 将 LongLength 属性的值打印到控制台
      Console.WriteLine("数组的长度为: " + length);
   }
}

输出

数组的长度为: 12

结论

当处理超出整数限制的大型数组时,C# 中数组的 LongLength 属性非常有用。它允许我们处理几乎任意大小的数组,唯一的限制是系统可用的内存量。它以长整数值的形式返回数组可容纳的元素数量。


相关文章