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ức | Kiểu trả về | Dùng khi |
|---|---|---|
GetLength | int (32-bit) | Mảng thông thường (< 2 tỷ phần tử) |
GetLongLength | long (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
gcAllowVeryLargeObjectsenabled
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