Phương thức Array.GetLowerBound() lấy chỉ số nhỏ nhất (lower bound) của chiều chỉ định trong mảng. Với mảng C# chuẩn, luôn trả về 0.
Ví dụ
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace LowerBoundDemo
{
class Program
{
static void Main(string[] args)
{
Array arr = Array.CreateInstance(typeof(String), 3);
arr.SetValue("Car", 0);
arr.SetValue("Truck", 1);
arr.SetValue("Motorbike", 2);
Console.WriteLine("Lower Bound (chiều 0): {0}", arr.GetLowerBound(0));
// Mảng 2 chiều
int[,] matrix = new int[3, 4];
Console.WriteLine("Lower Bound hàng: {0}", matrix.GetLowerBound(0)); // 0
Console.WriteLine("Lower Bound cột: {0}", matrix.GetLowerBound(1)); // 0
Console.ReadLine();
}
}
}
Kết quả
Lower Bound (chiều 0): 0 Lower Bound hàng: 0 Lower Bound cột: 0
Giải thích
- Mảng C# luôn zero-based (chỉ số bắt đầu từ 0)
GetLowerBound(d)luôn trả về 0 cho mọi chiềud- Khác với VB6 hoặc một số ngôn ngữ khác cho phép lower bound khác 0
Mối quan hệ
Length = GetUpperBound(d) - GetLowerBound(d) + 1 // Với C#: Length = GetUpperBound(d) - 0 + 1 = GetUpperBound(d) + 1
Khi nào dùng?
- Code generic xử lý mảng bất kỳ (kể cả non-zero-based từ COM interop)
- Tương thích với code port từ ngôn ngữ khác
- Reflection, metadata inspection