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

ชนิดข้อมูลของ Array ใน C#

ชนิดข้อมูลของ Array (Array Data Types) ใน C#

Array ใน C# สามารถสร้างจากชนิดข้อมูลใดก็ได้: Primitive Types, Reference Types, User-defined Types

การประกาศ Array


// Syntax
dataType[] arrayName;

// ตัวอย่าง
int[] intArray;           // Integer Array
double[] doubleArray;     // Double Array
string[] stringArray;     // String Array (Reference Type)
bool[] boolArray;         // Boolean Array
char[] charArray;         // Char Array
MyClass[] objArray;       // Custom Class Array

การสร้างและ Initialize


// 1. กำหนดขนาด (Default Values: 0, null, false)
int[] a = new int[5]; // {0,0,0,0,0}

// 2. Array Initializer (ขนาดมาจากจำนวน Element)
int[] b = new int[] { 1, 2, 3, 4, 5 };
int[] c = { 1, 2, 3, 4, 5 }; // Short Form (ใน Declaration เท่านั้น)

// 3. Implicitly Typed (var)
var d = new[] { 1, 2, 3 }; // int[]
var e = new[] { "a", "b" }; // string[]

Multidimensional Arrays


// 2D Array (Rectangular) - [rows, cols]
int[,] matrix = new int[3, 4];
int[,] matrix2 = { {1,2}, {3,4}, {5,6} };

// 3D Array
int[,,] cube = new int[2, 3, 4];

// Jagged Array (Array of Arrays) - [][] 
int[][] jagged = new int[3][];
jagged[0] = new int[] {1, 2};
jagged[1] = new int[] {3, 4, 5};
jagged[2] = new int[] {6};

Array Properties และ Methods

Memberคำอธิบาย
Lengthจำนวน Element ทั้งหมด (All Dimensions)
Rankจำนวน Dimension (1, 2, 3...)
GetLength(dimension)ขนาดของ Dimension ที่ระบุ (0-based)
GetLowerBound(dimension)Lower Bound (ปกติ 0)
GetUpperBound(dimension)Upper Bound (Length-1)
Clone()Shallow Copy

ตัวอย่าง: Query Array Info


int[,] arr = new int[3, 4]; // 3 rows, 4 cols

Console.WriteLine($"Rank: {arr.Rank}");           // 2
Console.WriteLine($"Length: {arr.Length}");       // 12
Console.WriteLine($"Dim 0 (Rows): {arr.GetLength(0)}"); // 3
Console.WriteLine($"Dim 1 (Cols): {arr.GetLength(1)}"); // 4

Covariance (Arrays เท่านั้น)


string[] strings = { "a", "b" };
object[] objects = strings; // OK: Array Covariance (string[] -> object[])

objects[0] = "c";   // OK
// objects[0] = 123; // Runtime Error: ArrayTypeMismatchException