Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

Properties ของ Array Class ใน C# คุณสมบัติและตัวอย่างการใช้งาน

คลาส Array ใน C# เป็น Base Class ของอาร์เรย์ทุกประเภท อยู่ใน Namespace System มี Properties หลัก 5 อย่างที่ใช้ตรวจสอบขนาด มิติ และลักษณะของอาร์เรย์

ตารางสรุป Properties ของ Array Class

ลำดับPropertyคำอธิบาย
1 IsFixedSize คืนค่า true หากอาร์เรย์มีขนาดคงที่ (ทุกอาร์เรย์ใน C# เป็น Fixed Size)
2 IsReadOnly คืนค่า true หากอาร์เรย์เป็น Read-Only (อาร์เรย์ทั่วไปคือ false)
3 Length คืนจำนวน Elements ทั้งหมดทุกมิติ (int 32-bit)
4 LongLength คืนจำนวน Elements ทั้งหมดทุกมิติ (long 64-bit) ใช้กับอาร์เรย์ขนาดใหญ่มาก
5 Rank คืนจำนวนมิติ (Dimensions) ของอาร์เรย์ (1 = Single-dimensional, 2 = 2D, etc.)

ตัวอย่างการใช้งานจริง

1. ตรวจสอบมิติและขนาดของ 2D Array

int[,] arr = new int[3, 4]; // 3 แถว 4 คอลัมน์

// Rank = จำนวนมิติ
Console.WriteLine(arr.Rank); // Output: 2

// GetLength(0) = จำนวนแถว, GetLength(1) = จำนวนคอลัมน์
Console.WriteLine(arr.GetLength(0)); // Output: 3
Console.WriteLine(arr.GetLength(1)); // Output: 4

// Length = จำนวน Elements ทั้งหมด (3 * 4 = 12)
Console.WriteLine(arr.Length); // Output: 12

// Bounds
Console.WriteLine("Upper Bound: {0}", arr.GetUpperBound(0)); // 2 (Index สูงสุดของมิติ 0)
Console.WriteLine("Lower Bound: {0}", arr.GetLowerBound(0)); // 0 (Index ต่ำสุด)

2. โค้ดตัวอย่างสมบูรณ์

using System;

class Program
{
    static void Main()
    {
        int[,] arr = new int[3, 4];

        Console.WriteLine("Rows (GetLength 0): " + arr.GetLength(0));
        Console.WriteLine("Cols (GetLength 1): " + arr.GetLength(1));
        Console.WriteLine("Total Elements (Length): " + arr.Length);
        Console.WriteLine("Upper Bound Dim 0: " + arr.GetUpperBound(0));
        Console.WriteLine("Lower Bound Dim 0: " + arr.GetLowerBound(0));
        Console.WriteLine("Dimensions (Rank): " + arr.Rank);
        
        // ทดสอบ Properties อื่นๆ
        Console.WriteLine("IsFixedSize: " + arr.IsFixedSize);   // True
        Console.WriteLine("IsReadOnly: " + arr.IsReadOnly);     // False
        Console.WriteLine("LongLength: " + arr.LongLength);     // 12L
    }
}

3. ผลลัพธ์

Rows (GetLength 0): 3
Cols (GetLength 1): 4
Total Elements (Length): 12
Upper Bound Dim 0: 2
Lower Bound Dim 0: 0
Dimensions (Rank): 2
IsFixedSize: True
IsReadOnly: False
LongLength: 12

Properties เพิ่มเติมที่น่าสนใจ (Methods แต่ใช้บ่อย)

  • GetLength(dimension) - คืนขนาดของมิติที่ระบุ (0-based)
  • GetUpperBound(dimension) - คืน Index สูงสุดของมิตินั้น
  • GetLowerBound(dimension) - คืน Index ต่ำสุดของมิตินั้น (ปกติเป็น 0)
  • Clone() - สร้าง Shallow Copy ของอาร์เรย์
  • CopyTo(Array, index) - คัดลอกข้อมูลไปยังอาร์เรย์อื่น

เทคนิค: วนลูป 2D Array ให้ถูกต้อง

for (int i = 0; i < arr.GetLength(0); i++)
{
    for (int j = 0; j < arr.GetLength(1); j++)
    {
        Console.Write(arr[i, j] + " ");
    }
    Console.WriteLine();
}

สรุป: ใช้ Rank เช็คมิติ, GetLength เช็คขนาดแต่ละมิติ, Length/LongLength เช็คจำนวน Elements ทั้งหมด และ IsFixedSize/IsReadOnly สำหรับตรวจสอบลักษณะอาร์เรย์