This article is currently in the process of being translated into Thai (~99% done).
Arrays
Array เป็นการเก็บรวบรวมสิ่งต่างๆ เช่น string เราจะใช้ในการรวมข้อมูลกันเป็นกลุ่ม ซึ่งทำให้เราใช้งานกับกลุ่มข้อมูลนี้ได้หลายอย่าง เช่น การจัดลำดับ (sorting) ใน framework จะเห็นได้ว่า เราจะใช้ array ค่อนข้างบ่อย เพราะฉะนั้นจึงเป็นสิ่งสำคัญที่เราควรจะทำความเข้าใจกับมัน
Array ก็เหมือนเป็นตัวแปรชนิดนึง ตามด้วย [] (bracket) หลังชนิดของตัวแปร (datatype) ดังนี้
string[] names;
และต้องตั้งค่าเริ่มต้น ดังนี้
string[] names = new string[2];
เลข 2 คือ ขนาดของ array ซึ่งก็คือจำนวนของสิ่งที่เราจะใส่เข้าไปใน array เราจะใส่ค่าให้ array ดังนี้
names[0] = "John Doe";
แต่ทำไมต้องเป็น 0 ? ในการเขียนโปรแกรม เรามักจะนับขึ้นต้นด้วย 0 ใน index แรก จะใช้ 0 ตามด้วย 1,2, 3, … ต่อๆไป เมื่อเราตั้งค่า array ขนาดเท่ากับ 2 เราจะมี index เป็น 1 และ 2 ถ้าเราใส่ค่า 2 เข้าไป ก็จะทำให้เกิดข้อผิดพลาด (exception) ได้
บทที่ผ่านๆมา เราได้เรียนเกี่ยวกับ loop เราจะใช้ loop ในการดึงข้อมูลใน array มาใช้
using System;
using System.Collections;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string[] names = new string[2];
names[0] = "John Doe";
names[1] = "Jane Doe";
foreach(string s in names)
Console.WriteLine(s);
Console.ReadLine();
}
}
}
เราใช้ foreach เพราะเป็น loop ที่ง่ายที่สุด เราสามารถใช้ loop แบบอื่นก็ได้ แต่ for นั้นดีสำหรับการนับ item
for(int i = 0; i < names.Length; i++)
Console.WriteLine("Item number " + i + ": " + names[i]);
เราแค่ใช้ Length property ของ array เราก็จะรู้ว่าเราจะวนกี่ loop เราใช้ counter (i) แทนตัวเลขในการใช้ index เพื่อที่จะหา item ใน array ที่เราต้องการ
เราสามารถใช้ array ในการจัดลำดับได้ด้วย Array class จะประกอบไปด้วยหลายๆ method ในตัวอย่างนี้ เราจะใช้ตัวเลขแทน string
int[] numbers = new int[5] { 4, 3, 8, 0, 5 };
ใน 1 บันทัด เราสามารถสร้าง array ขนาด 5 และตั้งค่าได้เลย ในที่นี้ compiler สามรถตรวจสอบให้เราได้ ว่าเราใส่ค่าเกินขนาด array หรือไม่
เราสามารถเขียนสั้นๆได้ดังนี้
int[] numbers = { 4, 3, 8, 0, 5 };
เราไม่จำเป็นต้องใส่ค่าของขนาด array แต่ควรจะใส่ไว้ดีกว่า เพื่อให้ใช้งานได้ง่าย
เรามาลองจัดลำดับของ array กัน
using System;
using System.Collections;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int[] numbers = { 4, 3, 8, 0, 5 };
Array.Sort(numbers);
foreach(int i in numbers)
Console.WriteLine(i);
Console.ReadLine();
}
}
}
เราจะใช้ Array.Sort command ในการจัดลำดับ และยังมีอีก method มากมายที่น่าใช้ เช่น Reverse() method สามารถดูได้ที่ documentation ของ Array class
ในบทนี้เราเรียนแค่ array dimension เดียว array สามารถมีหลาย dimension ได้ เช่น rectangular array จะมีขนาดในแต่ละ dimension เท่ากัน jagged array จะมีขนาดในแต่ละ dimension ไม่เท่ากัน ใน tutorial นี้ เราจะไม่ลงลึกไปถึง multidimension