Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Sử dụng GetLongLength() của lớp Array trong C#


Phương thức GetLongLength() trả về số nguyên 64-bit (long) biểu diễn số phần tử trong chiều chỉ định của mảng. Dùng cho mảng lớn (> 2 tỷ phần tử).

Ví dụ

using System;

class Program
{
    static void Main()
    {
        // Mảng int 20x30
        int[,] arr = new int[20, 30];
        int len = arr.GetLength(1); // 32-bit
        Console.WriteLine("GetLength(1): {0}", len);
        
        // Mảng long 15x35
        long[,] arr2 = new long[15, 35];
        long len2 = arr2.GetLongLength(0); // 64-bit
        Console.WriteLine("GetLongLength(0): {0}", len2);
    }
}

Kết quả

GetLength(1): 30
GetLongLength(0): 15

So sánh GetLength vs GetLongLength

Phương thứcKiểu trả vềDùng khi
GetLengthint (32-bit)Mảng thông thường (< 2 tỷ phần tử)
GetLongLengthlong (64-bit)Mảng rất lớn, cần tránh tràn số

Khi nào cần GetLongLength?

  • Mảng một chiều > Int32.MaxValue (2,147,483,647) phần tử
  • Mảng đa chiều có tổng phần tử > 2 tỷ
  • Xử lý big data, scientific computing
  • Cần thiết trên hệ thống 64-bit với gcAllowVeryLargeObjects enabled

Lưu ý

  • Mặc định .NET giới hạn mảng ở 2GB. Cần cấu hình <gcAllowVeryLargeObjects enabled="true" /> trong app.config
  • Hầu hết ứng dụng không cần GetLongLength