บทช่วยสอนอาร์เรย์ C#: สร้าง ประกาศ เริ่มต้น
⚡ สรุปอย่างชาญฉลาด
อาร์เรย์ใน C# จัดเก็บชุดข้อมูลขนาดคงที่ซึ่งประกอบด้วยองค์ประกอบที่มีชนิดข้อมูลเดียวกัน ภายใต้ชื่อตัวแปรเดียวกัน โดยแต่ละองค์ประกอบจะอยู่ที่ดัชนีเริ่มต้นที่ศูนย์ ทำให้การประกาศ การกำหนดค่าเริ่มต้น และการเข้าถึงค่าต่างๆ ทำได้อย่างรวดเร็วและคาดเดาได้

อาร์เรย์ใน C # คืออะไร?
อาร์เรย์ใช้ในการจัดเก็บคอลเลกชันหรือชุดขององค์ประกอบ องค์ประกอบเหล่านี้จะเป็นประเภทเดียวกัน
ตัวอย่างเช่น หากคุณมีอาร์เรย์ของค่าจำนวนเต็ม อาร์เรย์นั้นอาจเป็นชุดของค่าต่างๆ เช่น [1, 2, 3, 4] โดยที่จำนวนองค์ประกอบในอาร์เรย์คือ 4
อาร์เรย์มีประโยชน์เมื่อคุณต้องการจัดเก็บคอลเลกชันของค่าประเภทเดียวกัน ดังนั้นแทนที่จะประกาศก ตัวแปร สำหรับทุกองค์ประกอบ คุณสามารถประกาศตัวแปรได้เพียงตัวเดียว
ตัวแปรนี้จะชี้ไปที่อาร์เรย์หรือรายการองค์ประกอบซึ่งจะรับผิดชอบในการจัดเก็บองค์ประกอบของอาร์เรย์
มาดูกันว่าเราจะทำงานกับอาร์เรย์ใน C# ได้อย่างไร ในตัวอย่างของเรา เราจะประกาศอาร์เรย์ของจำนวนเต็มและทำงานร่วมกับพวกมันตามลำดับ
โปรดทราบว่าโค้ดด้านล่างนี้ทั้งหมดถูกสร้างขึ้นในไฟล์ Program.cs
ขั้นตอน 1) การประกาศอาร์เรย์ – ขั้นตอนแรกคือการประกาศอาร์เรย์ มาดูกันว่าเราจะบรรลุเป้าหมายนี้ได้อย่างไรด้วยตัวอย่างโค้ดด้านล่างนี้
Code คำอธิบาย:-
- ส่วนแรกคือ ประเภทข้อมูล- ระบุประเภทขององค์ประกอบที่ใช้ในอาร์เรย์ ในกรณีของเรา เรากำลังสร้างอาร์เรย์ของจำนวนเต็ม
- ส่วนที่สอง [ ] ซึ่งระบุอันดับของอาร์เรย์ (อันดับคือตัวยึดตำแหน่งซึ่งระบุจำนวนองค์ประกอบที่อาร์เรย์จะมี)
- ถัดไปคือชื่อของอาร์เรย์ซึ่งในกรณีของเราคือ 'ค่า' โปรดทราบว่าคุณเห็นเส้นใต้เส้นหยักสีเขียว ไม่ต้องกังวลกับเรื่องนั้น นั่นเป็นเพียง. Net ที่บอกว่าคุณได้ประกาศอาร์เรย์ แต่ไม่ได้ใช้มันเลย
ขั้นตอน 2) ขั้นตอนต่อไปคือการเริ่มต้นอาร์เรย์ ที่นี่เราจะระบุจำนวนค่าที่อาร์เรย์จะเก็บไว้ เราจะกำหนดค่าให้กับแต่ละองค์ประกอบของอาร์เรย์ด้วย
Code คำอธิบาย:-
- ขั้นแรก เราจะกำหนดจำนวนองค์ประกอบที่อาร์เรย์จะเก็บเป็น 3 ดังนั้นในวงเล็บเหลี่ยม เราจะบอกว่าอาร์เรย์จะเก็บองค์ประกอบได้ 3 องค์ประกอบ
- จากนั้นเราจะกำหนดค่าให้กับแต่ละองค์ประกอบของอาร์เรย์ เราสามารถทำได้โดยการระบุชื่อตัวแปร + ตำแหน่งดัชนีในอาร์เรย์ ดังนั้น values[0] หมายความว่าเรากำลังจัดเก็บค่าในตำแหน่งแรกของอาร์เรย์ ในทำนองเดียวกัน ในการเข้าถึงตำแหน่งที่สอง เราใช้สัญลักษณ์ values[1] และอื่นๆ ต่อไปเรื่อยๆ
หมายเหตุ: – ใน Arrays ตำแหน่งดัชนีเริ่มต้นจาก 0
ขั้นตอน 3) ตอนนี้เรามาแสดงแต่ละองค์ประกอบของอาร์เรย์ในคอนโซล มาเพิ่มโค้ดด้านล่างเพื่อให้บรรลุเป้าหมายนี้
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Program { static void Main(string[] args) { Int32[] value; value=new Int32[3]; value[0]=1; value[1]=2; value[2]=3; Console.WriteLine(value[0]); Console.WriteLine(value[1]); Console.WriteLine(value[2]); Console.ReadKey(); } } }
Code คำอธิบาย:-
นี่เป็นส่วนง่ายๆ ที่เราเพียงแค่ใช้เมธอด Console.WriteLine เพื่อส่งค่าแต่ละค่าขององค์ประกอบไปยังคอนโซล
โปรดทราบว่าเรากำลังเข้าถึงแต่ละองค์ประกอบโดยใช้ชื่อตัวแปรอาร์เรย์พร้อมกับตำแหน่งดัชนี
หากป้อนโค้ดด้านบนถูกต้องแล้วและดำเนินการโปรแกรมจะแสดงผลลัพธ์ต่อไปนี้
Output:
จากเอาต์พุต คุณสามารถดูค่าทั้งหมดของอาร์เรย์ที่แสดงอยู่ในคอนโซลได้
วิธีการวนลูปผ่านอาร์เรย์ใน C# โดยใช้ foreach
การอ่านแต่ละองค์ประกอบโดยใช้ดัชนีนั้นใช้ได้ แต่จะยุ่งยากเมื่ออาร์เรย์มีค่าจำนวนมาก ลูป foreach ให้วิธีที่สะอาดกว่าในการเข้าถึงทุกองค์ประกอบของอาร์เรย์ตามลำดับโดยไม่ต้อง... tracสร้างตัวแปรดัชนีด้วยตนเอง
คำสั่ง foreach จะดึงแต่ละรายการจากอาร์เรย์ทีละรายการและคัดลอกไปยังตัวแปรลูป จากนั้นคุณจะใช้ตัวแปรนั้นภายในตัวลูป เนื่องจากลูปจะหยุดโดยอัตโนมัติเมื่อถึงองค์ประกอบสุดท้าย คำสั่ง foreach จึงช่วยลดความเสี่ยงในการอ่านเกินขอบเขตของอาร์เรย์
using System; namespace DemoApplication { class Program { static void Main(string[] args) { Int32[] values = new Int32[3] {1, 2, 3}; foreach (Int32 item in values) { Console.WriteLine(item); } Console.ReadKey(); } } }
ตัวอย่างข้างต้นประกาศและกำหนดค่าเริ่มต้นให้กับอาร์เรย์ของจำนวนเต็มสามตัว จากนั้นวนลูปผ่านอาร์เรย์ด้วยคำสั่ง foreach ในแต่ละรอบการวนลูป ตัวแปรจะถูกกำหนดค่าใหม่ ชิ้น รับค่าถัดไป และ Console.WriteLine จะพิมพ์ค่าดังกล่าวออกมา ผลลัพธ์ที่ได้คือตัวเลข 1, 2 และ 3 บนบรรทัดแยกกัน
ข้อควรจำที่สำคัญเกี่ยวกับการใช้ foreach กับอาร์เรย์:
- ตัวแปรลูปเป็นแบบอ่านอย่างเดียว ดังนั้น foreach จึงเหมาะสำหรับการอ่านค่ามากกว่าการเปลี่ยนแปลงค่าในตำแหน่งเดิม
- เพื่อแก้ไของค์ประกอบขณะดูpingให้ใช้ลูป for ที่มีดัชนีแทน
- ฟังก์ชัน foreach สามารถใช้งานได้กับอาร์เรย์มิติเดียว อาร์เรย์หลายมิติ และคอลเลกชันใดๆ ที่รองรับการวนซ้ำ
อาร์เรย์หลายมิติใน C#
อาร์เรย์ที่แสดงมาแล้วเป็นอาร์เรย์มิติเดียว ซึ่งหมายความว่ามันเก็บค่าเป็นรายการอย่างง่าย C# ยังรองรับอาร์เรย์หลายมิติ ซึ่งจัดเรียงองค์ประกอบในตารางของแถวและคอลัมน์ อาร์เรย์สองมิติเป็นรูปแบบที่พบได้บ่อยที่สุดและเหมาะสำหรับข้อมูลเช่นเมทริกซ์ กระดานเกม และตาราง
คุณประกาศอาร์เรย์สองมิติโดยการใส่เครื่องหมายจุลภาคไว้ภายในวงเล็บเหลี่ยม เครื่องหมายจุลภาคแต่ละตัวจะเพิ่มมิติอีกหนึ่งมิติ ดังนั้น int[,] จึงเป็นอาร์เรย์สองมิติ และ int[,,] จึงเป็นอาร์เรย์สามมิติ จากนั้นจึงสามารถเข้าถึงองค์ประกอบต่างๆ ได้โดยใช้ดัชนีหนึ่งตัวต่อหนึ่งมิติ
using System; namespace DemoApplication { class Program { static void Main(string[] args) { int[,] matrix = new int[2, 2] { {1, 2}, {3, 4} }; Console.WriteLine(matrix[0, 0]); Console.WriteLine(matrix[1, 1]); Console.ReadKey(); } } }
ในที่นี้ อาร์เรย์ matrix ประกอบด้วยสองแถวและสองคอลัมน์ ค่าของ matrix[0, 0] จะคืนค่า 1 และค่าของ matrix[1, 1] จะคืนค่า 4 จำนวนมิติจะถูกกำหนดเมื่อประกาศอาร์เรย์ ในขณะที่ขนาดของแต่ละมิติจะถูกกำหนดเมื่อสร้างอาร์เรย์
อาร์เรย์แบบหยักใน C#
อาร์เรย์แบบหยัก (Jagged array) คืออาร์เรย์ที่แต่ละองค์ประกอบเป็นอาร์เรย์อีกทีหนึ่ง ต่างจากอาร์เรย์หลายมิติแบบสี่เหลี่ยมผืนผ้า อาร์เรย์ภายในแต่ละตัวสามารถมีความยาวไม่เท่ากันได้ นี่คือเหตุผลที่อาร์เรย์แบบหยักมักถูกเรียกว่าอาร์เรย์ของอาร์เรย์ ความยืดหยุ่นนี้มีประโยชน์เมื่อแต่ละแถวมีจำนวนค่าที่แตกต่างกัน
คุณประกาศอาร์เรย์แบบไม่สม่ำเสมอโดยใช้เครื่องหมายวงเล็บเหลี่ยมสองชุด จากนั้นสร้างอาร์เรย์ภายในแต่ละชุดแยกกัน ตัวอย่างต่อไปนี้สร้างอาร์เรย์แบบไม่สม่ำเสมอ โดยแถวแรกเก็บค่าสามค่า และแถวที่สองเก็บค่าสองค่า
using System; namespace DemoApplication { class Program { static void Main(string[] args) { int[][] jagged = new int[2][]; jagged[0] = new int[] {1, 2, 3}; jagged[1] = new int[] {4, 5}; Console.WriteLine(jagged[0][2]); Console.WriteLine(jagged[1][1]); Console.ReadKey(); } } }
นิพจน์ jagged[0][2] อ่านองค์ประกอบที่สามของแถวแรก ซึ่งคือ 3 และ jagged[1][1] อ่านองค์ประกอบที่สองของแถวที่สอง ซึ่งคือ 5 เนื่องจากแต่ละแถวเป็นอาร์เรย์แยกกัน อาร์เรย์แบบ jagged จึงใช้หน่วยความจำได้อย่างมีประสิทธิภาพเมื่อความยาวของแถวแตกต่างกัน แม้ว่าจะต้องมีขั้นตอนเพิ่มเติมในการเริ่มต้นอาร์เรย์ภายในทุกตัวก็ตาม




