การเก็บหลายค่าในตัวแปรเดียวด้วยอาร์เรย์ใน C#
ใน C# ไม่สามารถกำหนดค่าหลายค่าให้ตัวแปรเดียวได้โดยตรง (ตัวแปรทั่วไปเก็บค่าได้เพียงค่าเดียว) แต่สามารถใช้ อาร์เรย์ (Array) หรือ คอลเลกชัน เพื่อเก็บหลายค่าในตัวแปรเดียว
การประกาศและเริ่มต้นอาร์เรย์สตริง
// ประกาศและจัดสรรหน่วยความจำ
string[] arr = new string[3];
// ประกาศและกำหนดค่าเริ่มต้นพร้อมกัน
string[] arr = new string[3] { "one", "two", "three" };
// แบบย่อ (Type inference)
string[] arr = { "one", "two", "three" };
ตัวอย่างโค้ดสมบูรณ์
using System;
public class Demo
{
static void Main(string[] args)
{
// อาร์เรย์สตริง 3 ค่า
string[] arr = new string[3] { "one", "two", "three" };
// วนลูปเข้าถึงค่าแต่ละตัว
for (int i = 0; i < arr.Length; i++)
{
Console.WriteLine("ค่า: " + arr[i]);
}
// ใช้ foreach (ง่ายกว่า)
foreach (string value in arr)
{
Console.WriteLine("ค่า: " + value);
}
Console.ReadKey();
}
}
ผลลัพธ์
ค่า: one
ค่า: two
ค่า: three
ทางเลือกอื่นสำหรับเก็บหลายค่า
| ประเภท | เหมาะสำหรับ | ขนาด |
|---|---|---|
Array (T[]) |
จำนวนค่าคงที่ ประสิทธิภาพสูง | คงที่ |
List<T> |
เพิ่ม/ลบค่าได้ พร้อมเมธอดช่วยมากมาย | ไดนามิก |
HashSet<T> |
ค่าไม่ซ้ำ ตรวจสอบความมีอยู่เร็ว | ไดนามิก |
Dictionary<K,V> |
เก็บคู่ key-value | ไดนามิก |
| Tuple / ValueTuple | จำนวนค่าน้อย ชนิดข้อมูลต่างกัน | คงที่ |
ตัวอย่างใช้ List แทน
using System.Collections.Generic;
List values = new List { "one", "two", "three" };
values.Add("four"); // เพิ่มได้
values.Remove("two"); // ลบได้
foreach (var v in values) Console.WriteLine(v);
สรุป: ใช้ Array เมื่อขนาดคงที่และต้องการประสิทธิภาพสูงสุด ใช้ List<T> สำหรับกรณีทั่วไปที่ต้องเพิ่ม/ลบข้อมูล