C# Academy · บทเรียน

ช่วงกับอาร์เรย์และสตริง

เลือกช่วงย่อยจากอาร์เรย์ สแปน และสตริงย่อย

บทเรียน 3 จาก 413 ขั้นตอน

ช่วงกับอาร์เรย์และสตริง เป็นบทเรียน C# Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน C# Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส C# Academy มีบทเรียนทั้งหมด 4 บทเรียน

การตัดแบ่งอาร์เรย์

การใช้ช่วงที่พบบ่อยที่สุดคือการตัดแบ่งอาร์เรย์ array[1..3] คืนค่าเป็นอาร์เรย์ใหม่ที่มีสมาชิกที่เลือกไว้

using System;

int[] data = { 10, 20, 30, 40, 50 };
int[] middle = data[1..3];
Console.WriteLine(string.Join(",", middle)); // 20,30

ส่วนย่อยของอาร์เรย์เป็นสำเนา

สำหรับอาร์เรย์ การตัดแบ่งด้วยช่วงจะจัดสรรอาร์เรย์ใหม่และคัดลอกสมาชิกไป การเปลี่ยนแปลงส่วนย่อยจะไม่ส่งผลต่ออาร์เรย์ต้นฉบับ

using System;

int[] original = { 1, 2, 3, 4 };
int[] slice = original[0..2];
slice[0] = 99;
Console.WriteLine(original[0]); // 1 (unchanged)
Console.WriteLine(slice[0]);    // 99

สตริงย่อยด้วย Range

ตัวเข้าถึงดัชนีของ string รองรับ Range ทำให้คุณได้สตริงย่อยโดยไม่ต้องเรียก Substring พร้อมระบุออฟเซ็ตและความยาว

using System;

string text = "Hello, World";
string hello = text[0..5];
Console.WriteLine(hello); // Hello

ส่วนย่อยของสตริงจากท้าย

ใช้ช่วงร่วมกับ ^ เพื่อดึงส่วนท้ายของสตริง เช่น นามสกุลไฟล์

using System;

string file = "report.csv";
string ext = file[^3..];
Console.WriteLine(ext); // csv

อักขระเดี่ยวด้วย Index

การใช้ Index เดี่ยวเป็นดัชนีของสตริงจะคืนค่า char หนึ่งตัว ใช้ ^1 เพื่อเลือกอักขระตัวสุดท้าย

using System;

string s = "Coddy";
char last = s[^1];
Console.WriteLine(last); // y

ตัดสมาชิกตัวแรกหรือตัวสุดท้ายออก

ช่วงที่ไม่ระบุปลายด้านหนึ่งทำให้การตัดสมาชิกออกหนึ่งรายการเป็นเรื่องง่าย: ..^1 ตัดสมาชิกตัวสุดท้าย ส่วน 1.. ตัดสมาชิกตัวแรก

using System;

string quoted = "[value]";
string inner = quoted[1..^1];
Console.WriteLine(inner); // value

แบ่งสตริงออกเป็นส่วน ๆ

คุณสามารถแบ่งข้อความตามตำแหน่งที่ทราบได้โดยใช้ส่วนย่อยจากช่วงสองส่วน

using System;

string code = "2026-05-30";
string year = code[..4];
string month = code[5..7];
string day = code[8..];
Console.WriteLine(year + " / " + month + " / " + day); // 2026 / 05 / 30

ใช้ช่วงหน่วยความจำเพื่อการตัดแบ่งโดยไม่คัดลอก

หากต้องการส่วนย่อยโดยไม่จัดสรรหน่วยความจำ ให้ใช้ AsSpan() ส่วนย่อยของช่วงหน่วยความจำจะเป็นหน้าต่างที่มองเห็นหน่วยความจำต้นฉบับ ไม่ใช่สำเนา

using System;

ReadOnlySpan<char> span = "Hello, World".AsSpan();
ReadOnlySpan<char> word = span[7..];
Console.WriteLine(word.ToString()); // World

ช่วงในลูป

คุณสามารถวนซ้ำอาร์เรย์ที่ถูกตัดแบ่งได้โดยตรงด้วย foreach

using System;

int[] data = { 2, 4, 6, 8, 10 };
foreach (int n in data[1..4])
    Console.Write(n + " "); // 4 6 8
Console.WriteLine();

มีการตรวจสอบขอบเขต

การตัดแบ่งนอกขอบเขตจะทำให้เกิด ArgumentOutOfRangeException ดังนั้นการอ่านข้อมูลเกินโดยไม่ตั้งใจจะล้มเหลวทันทีแทนที่จะทำให้ข้อมูลเสียหาย

using System;

int[] d = { 1, 2, 3 };
try { var _ = d[1..10]; }
catch (ArgumentOutOfRangeException) { Console.WriteLine("slice out of bounds"); }

ตัวแยกวิเคราะห์ที่ใช้งานได้จริง

ต่อไปนี้คือตัวแยกวิเคราะห์ขนาดเล็กที่ใช้ช่วงและ IndexOf เพื่อแยกชื่อกับโดเมนออกจากที่อยู่อีเมล

using System;

string email = "ada@coddy.dev";
int at = email.IndexOf('@');
string user = email[..at];
string domain = email[(at + 1)..];
Console.WriteLine(user + " | " + domain); // ada | coddy.dev

ตรวจสอบความเข้าใจอย่างรวดเร็ว

ตรวจสอบความเข้าใจเกี่ยวกับการตัดแบ่งด้วยช่วงบนอาร์เรย์และสตริง

สรุปทบทวน

คุณได้เรียนรู้วิธีใช้ช่วงกับอาร์เรย์และสตริง

  • array[1..3] คืนค่าอาร์เรย์ใหม่ที่คัดลอกข้อมูลแล้ว
  • string[a..b] คืนค่าสตริงย่อย ส่วน Index เดี่ยวจะคืนค่า char
  • ..^1 และ 1.. ใช้ตัดสมาชิกออกหนึ่งรายการ
  • AsSpan() ใช้ตัดแบ่งโดยไม่จัดสรรหน่วยความจำ
เริ่มต้นได้ฟรี

เรียนรู้ C# ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
93
บทเรียน
346

คำถามที่พบบ่อย

บทเรียน “ช่วงกับอาร์เรย์และสตริง” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “ช่วงกับอาร์เรย์และสตริง” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส C# Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส C# Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “ช่วงกับอาร์เรย์และสตริง”

เลือกช่วงย่อยจากอาร์เรย์ สแปน และสตริงย่อย คุณปฏิบัติ C# Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน C# Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน C# Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “ช่วงกับอาร์เรย์และสตริง” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน C# Academy นี้ได้ไหม

ได้ บทเรียน C# Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ชนิด Index และตัวดำเนินการ ^
  2. ชนิด Range และตัวดำเนินการ ..
  3. ช่วงกับอาร์เรย์และสตริง
  4. ชนิดข้อมูลแบบกำหนดเองที่รองรับช่วง
← กลับไปที่ C# Academy