ช่วงกับอาร์เรย์และสตริง
เลือกช่วงย่อยจากอาร์เรย์ สแปน และสตริงย่อย
ช่วงกับอาร์เรย์และสตริง เป็นบทเรียน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ชนิด Index และตัวดำเนินการ ^
- ชนิด Range และตัวดำเนินการ ..
- ช่วงกับอาร์เรย์และสตริง
- ชนิดข้อมูลแบบกำหนดเองที่รองรับช่วง