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

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


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ều d
  • 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