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

Tìm rank (số chiều) của mảng trong C#

Thuộc tính Array.Rank trả về số chiều của mảng (1 cho mảng 1D, 2 cho 2D, v.v.).

Ví dụ minh họa

using System;

class Program
{
    static void Main()
    {
        // Mảng 1 chiều
        int[] arr1D = new int[5];
        Console.WriteLine($"int[5]: Rank = {arr1D.Rank}"); // 1
        
        // Mảng 2 chiều
        int[,] arr2D = new int[3, 4];
        Console.WriteLine($"int[3,4]: Rank = {arr2D.Rank}"); // 2
        
        // Mảng 3 chiều
        int[,,] arr3D = new int[2, 3, 4];
        Console.WriteLine($"int[2,3,4]: Rank = {arr3D.Rank}"); // 3
        
        // Mảng răng cưa (jagged array) - Rank luôn = 1
        int[][] jagged = new int[3][];
        jagged[0] = new int[2];
        jagged[1] = new int[3];
        jagged[2] = new int[4];
        Console.WriteLine($"int[][]: Rank = {jagged.Rank}"); // 1 (mảng của mảng)
        
        // Thông tin chi tiết mảng 2D
        Console.WriteLine($"\nChi tiết int[3,4]:");
        Console.WriteLine($"Length (tổng phần tử): {arr2D.Length}"); // 12
        Console.WriteLine($"GetLength(0): {arr2D.GetLength(0)}"); // 3
        Console.WriteLine($"GetLength(1): {arr2D.GetLength(1)}"); // 4
        Console.WriteLine($"GetLowerBound(0): {arr2D.GetLowerBound(0)}"); // 0
        Console.WriteLine($"GetUpperBound(0): {arr2D.GetUpperBound(0)}"); // 2
        Console.WriteLine($"GetLowerBound(1): {arr2D.GetLowerBound(1)}"); // 0
        Console.WriteLine($"GetUpperBound(1): {arr2D.GetUpperBound(1)}"); // 3
    }
}

Kết quả đầu ra

int[5]: Rank = 1
int[3,4]: Rank = 2
int[2,3,4]: Rank = 3
int[][]: Rank = 1

Chi tiết int[3,4]:
Length (tổng phần tử): 12
GetLength(0): 3
GetLength(1): 4
GetLowerBound(0): 0
GetUpperBound(0): 2
GetLowerBound(1): 0
GetUpperBound(1): 3

Phân biệt: Rank = số chiều. Length = tổng số phần tử. GetLength(d) = kích thước chiều d. Jagged array Rank = 1 vì bản chất là mảng 1D chứa các mảng 1D.