อาร์เรย์คืออะไร?
อาร์เรย์ (Array) คือคอลเลกชันของตัวแปรที่มี ชนิดข้อมูลเดียวกัน จัดเก็บใน หน่วยความจำติดกัน (contiguous memory locations)
- ดัชนีเริ่มจาก 0 (zero-indexed)
- ขนาดคงที่ (fixed size) หลังสร้างแล้ว
- เข้าถึงได้เร็ว O(1) ผ่านดัชนี
Syntax การประกาศอาร์เรย์
type[] arrayName;
องค์ประกอบ
- type - ชนิดข้อมูลของอาร์เรย์ (int, string, double, ฯลฯ)
- arrayName - ชื่อตัวแปรอาร์เรย์
- [ ] - บ่งชี้ว่าเป็นอาร์เรย์ (ขนาดจะระบุตอนสร้าง)
วิธีการสร้างอาร์เรย์
1. ประกาศและสร้างพร้อมกำหนดขนาด
int[] numbers = new int[5]; // อาร์เรย์ int ขนาด 5 (ค่าเริ่มต้น 0)
2. ประกาศและกำหนดค่าเริ่มต้น (Array Initializer)
int[] numbers = new int[] { 10, 20, 30, 40, 50 };
// หรือสั้นๆ
int[] numbers = { 10, 20, 30, 40, 50 };
3. ประกาศแยกจากการสร้าง
int[] numbers; // ประกาศ
numbers = new int[5]; // สร้างภายหลัง
ตัวอย่างโค้ดสมบูรณ์
using System;
namespace MyApplication
{
class MyClass
{
static void Main(string[] args)
{
// n คืออาร์เรย์ของจำนวนเต็ม 5 ตัว
int[] a = new int[5];
int i, j;
/* เริ่มต้นค่าของอาร์เรย์ a */
for (i = 0; i < 5; i++)
{
a[i] = i + 10;
}
/* แสดงค่าของแต่ละสมาชิก */
for (j = 0; j < 5; j++)
{
Console.WriteLine("Element[{0}] = {1}", j, a[j]);
}
Console.ReadKey();
}
}
}
ผลลัพธ์
Element[0] = 10
Element[1] = 11
Element[2] = 12
Element[3] = 13
Element[4] = 14
การเข้าถึงและแก้ไขค่า
int[] scores = { 85, 90, 78, 92, 88 };
// อ่านค่า
int first = scores[0]; // 85
int last = scores[4]; // 88
// เขียนค่า
scores[2] = 95; // แก้ค่าดัชนี 2 เป็น 95
// ความยาว
int len = scores.Length; // 5
การวนลูปอาร์เรย์
for loop (แบบดั้งเดิม)
for (int i = 0; i < arr.Length; i++)
{
Console.WriteLine(arr[i]);
}
foreach (แนะนำ - อ่านง่าย ปลอดภัย)
foreach (int value in arr)
{
Console.WriteLine(value);
}
อาร์เรย์หลายมิติ (Multidimensional Arrays)
2 มิติ (Rectangular Array)
// 3 แถว x 4 คอลัมน์
int[,] matrix = new int[3, 4];
matrix[0, 0] = 1;
matrix[2, 3] = 99;
// วนลูป
for (int r = 0; r < 3; r++)
{
for (int c = 0; c < 4; c++)
{
Console.Write(matrix[r, c] + " ");
}
Console.WriteLine();
}
Jagged Array (อาร์เรย์ของอาร์เรย์)
// แต่ละแถวมีขนาดต่างกันได้
int[][] jagged = new int[3][];
jagged[0] = new int[] { 1, 2 };
jagged[1] = new int[] { 3, 4, 5, 6 };
jagged[2] = new int[] { 7 };
สรุป
- ประกาศ:
type[] name - สร้าง:
new type[size]หรือ{ val1, val2, ... } - ดัชนี 0 ถึง Length-1
- ใช้
.Lengthดูขนาด,foreachวนลูป - อาร์เรย์เป็น Reference Type (เก็บ reference ไปยังหน่วยความจำ)