0Pricing
C# Academy · Pelajaran

Pola List dan Tuple

Bongkar koleksi.

Pola List dan Tuple adalah pelajaran C# Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar C# Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus C# Academy mencakup 4 pelajaran total.

Pola Tupel

Pola tupel mencocokkan beberapa nilai sekaligus dengan membungkusnya dalam tanda kurung. Setiap posisi dicocokkan menggunakan subpola masing-masing.

Pola ini ideal untuk keputusan yang bergantung pada beberapa input, seperti mesin keadaan sederhana atau juri batu-gunting-kertas, semuanya dalam satu pernyataan pemilihan.

int x = 0, y = 5;
string quadrant = (x, y) switch
{
    (0, 0) => "origin",
    (0, _) => "y-axis",
    (_, 0) => "x-axis",
    _ => "plane"
};
System.Console.WriteLine(quadrant);

Pernyataan Pemilihan Tupel yang Dapat Dijalankan

Pola tupel membuat tabel keputusan mudah dibaca. Di sini, dua nilai boolean menentukan suatu tindakan.

Setiap cabang mencantumkan pola tupel, dan pengabaian _ pada suatu posisi berarti posisi tersebut dapat berisi apa saja. Cabang _ terakhir mencakup semua kemungkinan lainnya.

using System;

class Program {
    static string Move(bool fwd, bool turn) => (fwd, turn) switch {
        (true, false) => "straight",
        (true, true) => "curve",
        (false, true) => "spin",
        _ => "stop"
    };
    static void Main() => Console.WriteLine(Move(true, true));
}

Pengikatan di Dalam Tupel

Posisi dalam pola tupel dapat menangkap nilai. (0, var y) cocok jika item pertama bernilai 0 dan mengikat item kedua ke y.

Selanjutnya, Anda dapat menggunakan variabel yang terikat tersebut dalam hasil cabang atau dalam penjaga when, sehingga pencocokan dan ekstraksi dilakukan dalam satu langkah.

var point = (0, 7);
string r = point switch
{
    (0, var y) => $"on y-axis at {y}",
    (var x, 0) => $"on x-axis at {x}",
    _ => "elsewhere"
};
System.Console.WriteLine(r);

Pola Daftar

Pola daftar mencocokkan larik dan daftar berdasarkan elemennya, yang ditulis menggunakan tanda kurung siku: [1, 2, 3]. Pola ini cocok jika panjang dan setiap pola elemen sesuai.

Diperkenalkan di C# 11, pola daftar memungkinkan Anda membuat percabangan berdasarkan bentuk urutan secara langsung tanpa pemeriksaan panjang dan indeks secara manual.

int[] data = { 1, 2, 3 };
string shape = data switch
{
    [] => "empty",
    [_] => "one",
    [_, _] => "two",
    _ => "many"
};
System.Console.WriteLine(shape);

Mencocokkan Elemen yang Tepat

Pola daftar dapat mencocokkan nilai tertentu pada setiap posisi. [1, 2, 3] hanya cocok dengan urutan tepat yang terdiri dari tiga elemen tersebut.

Campurkan konstanta dan pengabaian sesuka Anda: [1, _, 3] cocok dengan daftar berjumlah tiga elemen yang diawali 1 dan diakhiri 3, tanpa memedulikan bagian tengahnya.

using System;

class Program {
    static void Main() {
        int[] a = { 1, 9, 3 };
        bool ok = a is [1, _, 3];
        Console.WriteLine(ok);
    }
}

Pola Irisan

Pola irisan .. mencocokkan sejumlah elemen, termasuk nol elemen, pada satu posisi. Suatu pola daftar dapat berisi paling banyak satu irisan.

[1, .., 9] cocok dengan daftar apa pun yang diawali 1 dan diakhiri 9, tanpa memedulikan isi di antaranya. Pola ini sangat berguna untuk memeriksa head dan tail.

int[] nums = { 1, 4, 5, 9 };
string r = nums switch
{
    [1, .., 9] => "1..9 bookends",
    _ => "other"
};
System.Console.WriteLine(r);

Menangkap Irisan

Irisan dapat menangkap elemen yang dilewati ke dalam sebuah variabel menggunakan var: [first, .. var rest].

Bagian yang ditangkap itu sendiri merupakan larik atau daftar dari tipe yang dicocokkan, sehingga Anda dapat mengurai elemen head dan menyimpan tail untuk pemrosesan lebih lanjut.

using System;

class Program {
    static void Main() {
        int[] xs = { 10, 20, 30, 40 };
        if (xs is [var head, .. var tail])
            Console.WriteLine($"{head} then {tail.Length} more");
    }
}

Mengikat Elemen di Ujung

Anda dapat mengikat kedua ujung di sekitar irisan: [var first, .., var last] menangkap item pertama dan terakhir sambil mengabaikan bagian tengah.

Ini merupakan cara ringkas untuk urutan yang hanya mementingkan batasnya, misalnya untuk memvalidasi bahwa suatu rute dimulai dan diakhiri pada titik yang diketahui.

using System;

class Program {
    static void Main() {
        string[] route = { "A", "B", "C", "D" };
        if (route is [var start, .., var end])
            Console.WriteLine($"{start} -> {end}");
    }
}

Pola Daftar dengan Subpola

Setiap posisi daftar dapat menggunakan pola apa pun, termasuk pola relasional dan logis. [> 0, > 0] cocok dengan daftar dua elemen positif.

Dengan demikian, seluruh perangkat pola dapat digunakan dalam pencocokan urutan, sehingga Anda dapat memvalidasi bentuk dan isi dalam satu ekspresi.

int[] pair = { 3, 8 };
string r = pair switch
{
    [> 0, > 0] => "both positive",
    [_, _] => "mixed",
    _ => "wrong size"
};
System.Console.WriteLine(r);

Menumpuk Tupel dan Daftar

Pola tupel dan daftar dapat ditumpuk satu di dalam yang lain maupun di dalam pola properti. Suatu posisi tupel dapat berisi pola daftar, begitu pula sebaliknya.

Hal ini memungkinkan Anda mencocokkan data terstruktur yang kompleks, seperti urutan berlabel, dalam satu ekspresi alih-alih beberapa pemeriksaan bertingkat.

using System;

class Program {
    static void Main() {
        (string, int[]) record = ("primes", new[]{ 2, 3 });
        string r = record switch {
            ("primes", [2, ..]) => "starts with 2",
            _ => "other"
        };
        Console.WriteLine(r);
    }
}

Persyaratan untuk Pola Daftar

Pola daftar dapat digunakan pada tipe apa pun yang dapat dihitung dan dapat diindeks: tipe tersebut harus memiliki properti Length atau Count serta pengindeks. Larik, List<T>, dan string memenuhi syarat.

Penangkapan irisan juga memerlukan metode irisan atau pengindeks rentang. Sebagian besar koleksi bawaan mendukung keduanya secara langsung.

string s = "cat";
bool isCat = s is ['c', 'a', 't'];
System.Console.WriteLine(isCat);

Uji Singkat

Uji pemahaman Anda tentang pola daftar dan tupel.

Rangkuman

Pola tupel mencocokkan beberapa nilai dalam tanda kurung; pola daftar mencocokkan bentuk urutan dalam tanda kurung siku, dengan .. sebagai irisan yang dapat menangkap bagian tengah menggunakan var.

Setiap posisi menerima subpola apa pun dan dapat ditumpuk dengan bebas. Pola daftar memerlukan tipe yang dapat dihitung dan diindeks. Kini Anda telah menguasai seluruh perangkat pola C#.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Pola List dan Tuple” gratis?

Ya — teks lengkap “Pola List dan Tuple” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus C# Academy, upgrade ke CoddyKit PRO. Kursus C# Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Pola List dan Tuple”?

Bongkar koleksi. Kamu berlatih C# Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai C# Academy?

Tidak diperlukan pengalaman sebelumnya. C# Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Pola List dan Tuple” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran C# Academy ini?

Ya. Setiap pelajaran C# Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Ekspresi switch
  2. Pola Tipe dan Properti
  3. Pola Relasional dan Logis
  4. Pola List dan Tuple
← Kembali ke C# Academy