Menu
CoddyTech

Ringkasan: Custom list

Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan C# di Coddy. Pelajaran 40 dari 70.

challenge icon

Tantangan

Mudah

Mari buat class CustomList yang menyatukan semua fitur tingkat lanjut dari bab ini: operator overloading, indexer, override ToString(), dan extension method, untuk membuat koleksi yang terasa alami dan mudah digunakan.

Kamu akan membagi kodemu ke dalam tiga file:

  • CustomList.cs: Buat class CustomList dalam namespace Collections yang membungkus array integer internal dan menyediakan pola akses yang intuitif. List-mu harus memiliki:
    • Array integer privat untuk menyimpan item dan property Count (dengan setter privat) yang melacak jumlah item yang tersimpan
    • Constructor yang menerima kapasitas (integer) dan menginisialisasi array internal dengan ukuran tersebut
    • Method Add(int item) yang menambahkan item ke posisi tersedia berikutnya (jika masih ada ruang)
    • Indexer this[int index] yang memungkinkan kamu mengambil dan mengatur item berdasarkan posisinya
    • Operator + yang di-overload untuk menggabungkan dua CustomLists menjadi satu list baru yang berisi semua item dari keduanya (kapasitas list baru harus sama dengan jumlah Count keduanya)
    • Method ToString() yang di-override untuk mengembalikan item dalam format [item1, item2, item3]: sertakan hanya item hingga Count, bukan slot kosong
  • ListExtensions.cs: Buat class statis ListExtensions dalam namespace Collections dengan extension method untuk CustomList-mu:
    • Sum(): mengembalikan jumlah semua item dalam list (hingga Count)
  • Program.cs: Di file utama, buat dua CustomLists, tambahkan item ke masing-masing, lalu tunjukkan semua fitur bekerja bersama: gunakan indexer untuk mengakses item, gabungkan list dengan operator +, cetak menggunakan ToString(), dan hitung jumlahnya menggunakan extension method-mu.

Kamu akan menerima enam input:

  • Tiga integer untuk ditambahkan ke list pertama
  • Tiga integer untuk ditambahkan ke list kedua

Buat list pertama dengan kapasitas 5 dan list kedua dengan kapasitas 3. Tambahkan tiga nilai input ke masing-masing list.

Cetak output dengan format berikut:

List 1: {ToString()}
List 2: {ToString()}
List 1[0]: {first item}
Combined: {ToString() of combined list}
Combined sum: {Sum()}

Misalnya, jika inputnya adalah 10, 20, 30, 5, 15, dan 25, outputnya seharusnya:

List 1: [10, 20, 30]
List 2: [5, 15, 25]
List 1[0]: 10
Combined: [10, 20, 30, 5, 15, 25]
Combined sum: 105

Perhatikan bagaimana semua bagian bekerja bersama: indexer memberimu akses seperti array, operator + memungkinkanmu menggabungkan list secara alami, ToString() menghasilkan output yang mudah dibaca, dan extension method menambahkan fungsi yang berguna. Seperti inilah class yang dirancang dengan baik!

Coba sendiri

using System;
using Collections;

class Program
{
    public static void Main(string[] args)
    {
        // Baca enam bilangan bulat
        int a1 = Convert.ToInt32(Console.ReadLine());
        int a2 = Convert.ToInt32(Console.ReadLine());
        int a3 = Convert.ToInt32(Console.ReadLine());
        int b1 = Convert.ToInt32(Console.ReadLine());
        int b2 = Convert.ToInt32(Console.ReadLine());
        int b3 = Convert.ToInt32(Console.ReadLine());

        // TODO: Buat CustomList pertama dengan kapasitas 5
        // TODO: Tambahkan a1, a2, a3 ke list pertama

        // TODO: Buat CustomList kedua dengan kapasitas 3
        // TODO: Tambahkan b1, b2, b3 ke list kedua

        // TODO: Cetak List 1 menggunakan ToString()
        // TODO: Cetak List 2 menggunakan ToString()
        // TODO: Cetak List 1[0] menggunakan pengindeks
        // TODO: Gabungkan list menggunakan operator + dan cetak hasilnya
        // TODO: Cetak jumlah nilai dalam list gabungan menggunakan method ekstensi Sum()
    }
}

Semua pelajaran di Pemrograman Berorientasi Objek

Latihan sendiri: Compiler C# online