0Pricing
C# Academy · บทเรียน

ไวยากรณ์นิพจน์คอลเลกชัน

กำหนดค่าเริ่มต้นให้อาร์เรย์ ลิสต์ และสแปนด้วยรูปแบบเดียวกัน

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

นิพจน์คอลเลกชัน (C# 12)

C# 12 นำเสนอ นิพจน์คอลเลกชัน ซึ่งเป็นไวยากรณ์วงเล็บเหลี่ยมชุดเดียวสำหรับสร้างอาร์เรย์ รายการ ช่วงหน่วยความจำ และชนิดอื่น ๆ แทนที่จะเขียน new int[] { 1, 2, 3 } คุณเขียนเพียง [1, 2, 3]

using System;

int[] numbers = [1, 2, 3, 4, 5];
Console.WriteLine(string.Join(",", numbers)); // 1,2,3,4,5

ไวยากรณ์เดียว ใช้ได้กับเป้าหมายหลายชนิด

ค่าตามตัวอักษร [...] แบบเดียวกันนี้ใช้ได้ไม่ว่าเป้าหมายจะเป็นอาร์เรย์ List<T> หรือ Span<T> คอมไพเลอร์จะเลือกวิธีสร้างที่เหมาะสมให้

using System;
using System.Collections.Generic;

int[] arr = [1, 2, 3];
List<int> list = [4, 5, 6];
Span<int> span = [7, 8, 9];
Console.WriteLine(arr.Length + " " + list.Count + " " + span.Length);

คอลเลกชันว่าง

นิพจน์คอลเลกชันว่างเขียนเพียง [] เท่านั้น ซึ่งชัดเจนกว่า Array.Empty<T>() หรือ new List<T>() และจะกำหนดชนิดตามเป้าหมายโดยอัตโนมัติ

using System;
using System.Collections.Generic;

int[] empty = [];
List<string> names = [];
Console.WriteLine(empty.Length + " " + names.Count); // 0 0

การแทนที่ตัวเริ่มต้นที่ยืดยาว

นิพจน์คอลเลกชันช่วยตัดขั้นตอนที่ไม่จำเป็นออกจากไวยากรณ์ตัวเริ่มต้นแบบเดิม ลองเปรียบเทียบรูปแบบทั้งสองด้านล่าง

using System;
using System.Collections.Generic;

// old
List<int> oldWay = new List<int> { 1, 2, 3 };
// new
List<int> newWay = [1, 2, 3];
Console.WriteLine(oldWay.Count == newWay.Count); // True

คอลเลกชันซ้อนกัน

คุณสามารถซ้อนนิพจน์คอลเลกชันเพื่อสร้างอาร์เรย์แบบหยักหรือลิสต์ที่มีลิสต์ย่อยได้

using System;

int[][] grid = [[1, 2], [3, 4], [5, 6]];
Console.WriteLine(grid[1][0]); // 3

นิพจน์ในฐานะองค์ประกอบ

องค์ประกอบสามารถเป็นนิพจน์ใดก็ได้ รวมถึงตัวแปร การเรียกใช้เมธอด และการคำนวณทางคณิตศาสตร์

using System;

int x = 10;
int[] values = [x, x * 2, x + 5, Math.Abs(-3)];
Console.WriteLine(string.Join(",", values)); // 10,20,15,3

หมายเหตุเกี่ยวกับหลายมิติ

นิพจน์คอลเลกชันสร้างอาร์เรย์แบบ หยัก (int[][]) ไม่ใช่อาร์เรย์แบบสี่เหลี่ยม (int[,]) อาร์เรย์แบบสี่เหลี่ยมยังคงใช้ไวยากรณ์เฉพาะของตนเอง

using System;

int[][] jagged = [[1, 2, 3], [4, 5]];
Console.WriteLine(jagged[0].Length + " " + jagged[1].Length); // 3 2

การทำงานกับ Span

เนื่องจากนิพจน์คอลเลกชันสามารถกำหนดเป้าหมายเป็น Span<T> และ ReadOnlySpan<T> ได้ คอมไพเลอร์จึงอาจจัดสรรหน่วยความจำบนสแตก ซึ่งช่วยหลีกเลี่ยงขยะบนฮีปสำหรับข้อมูลอายุสั้น

using System;

ReadOnlySpan<int> stackData = [1, 2, 3, 4];
int total = 0;
foreach (int n in stackData) total += n;
Console.WriteLine(total); // 10

การส่งคอลเลกชันไปยังเมธอด

เมื่อชนิดของพารามิเตอร์เป็นคอลเลกชัน คุณสามารถส่งนิพจน์คอลเลกชันโดยตรงตรงจุดเรียกใช้ได้

using System;

static int Sum(int[] xs) {
    int t = 0;
    foreach (int x in xs) t += x;
    return t;
}

Console.WriteLine(Sum([2, 4, 6])); // 12

ความอ่านง่ายที่เหนือกว่า

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

using System;

string[] days = ["Mon", "Tue", "Wed", "Thu", "Fri"];
Console.WriteLine(days[^1]); // Fri

การคืนค่าคอลเลกชัน

เมธอดสามารถคืนค่านิพจน์คอลเลกชันได้ โดยชนิดที่คืนค่าจะเป็นตัวกำหนดแนวทางการสร้าง

using System;

static int[] Primes() => [2, 3, 5, 7, 11];

Console.WriteLine(string.Join(",", Primes())); // 2,3,5,7,11

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

ตรวจสอบความเข้าใจพื้นฐานเกี่ยวกับนิพจน์คอลเลกชันของคุณ

สรุปทบทวน

คุณได้เรียนรู้ไวยากรณ์นิพจน์คอลเลกชันของ C# 12

  • [1, 2, 3] ใช้แทนตัวเริ่มต้นที่ยืดยาว
  • [] คือคอลเลกชันว่าง
  • นิพจน์นี้กำหนดชนิดตามเป้าหมายได้ จึงใช้ได้กับอาร์เรย์ ลิสต์ และสแปน
  • วงเล็บที่ซ้อนกันจะสร้างอาร์เรย์แบบหยัก

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

บทเรียน “ไวยากรณ์นิพจน์คอลเลกชัน” ฟรีหรือไม่

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

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

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

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

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

บทเรียน “ไวยากรณ์นิพจน์คอลเลกชัน” ใช้เวลานานแค่ไหน

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

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

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

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

  1. ไวยากรณ์นิพจน์คอลเลกชัน
  2. องค์ประกอบกระจาย
  3. การอนุมานชนิดของคอลเลกชันจากเป้าหมาย
  4. ตัวสร้างคอลเลกชัน
← กลับไปที่ C# Academy