0Pricing
C# Academy · Pelajaran

Elemen Spread

Gabungkan koleksi dengan operator spread.

Elemen Spread adalah pelajaran C# Academy gratis di CoddyKit. Ini adalah pelajaran 2 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.

Elemen Sebar ..

Di dalam ekspresi koleksi, elemen sebar .. menyisipkan isi koleksi lain. Elemen ini digunakan untuk menggabungkan urutan secara deklaratif.

using System;

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

Mencampur Elemen Sebar dan Elemen Tunggal

Anda dapat menyisipkan elemen sebar dan nilai individual secara bebas, dan urutannya tetap dipertahankan.

using System;

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

Menambahkan di Awal dan di Akhir

Elemen sebar memudahkan tindakan "menambahkan di awal" atau "menambahkan di akhir", dengan menghasilkan koleksi baru alih-alih mengubah koleksi asli.

using System;

int[] core = [10, 20, 30];
int[] withHead = [0, ..core];
int[] withTail = [..core, 40];
Console.WriteLine(string.Join(",", withHead)); // 0,10,20,30
Console.WriteLine(string.Join(",", withTail)); // 10,20,30,40

Menyebarkan Beberapa Sumber

Jumlah koleksi yang disebarkan ke dalam satu koleksi tidak terbatas. Dengan demikian, beberapa daftar dapat digabungkan dalam satu ekspresi.

using System;
using System.Collections.Generic;

List<string> x = ["a", "b"];
List<string> y = ["c"];
List<string> z = ["d", "e"];
List<string> merged = [..x, ..y, ..z];
Console.WriteLine(string.Join(",", merged)); // a,b,c,d,e

Menyebarkan Berbagai Tipe Koleksi

Sumber sebar dapat berupa enumerable apa pun: array ke dalam daftar, daftar ke dalam array, dan seterusnya. Tipe tujuan menentukan hasilnya.

using System;
using System.Collections.Generic;

int[] arr = [1, 2];
List<int> list = [3, 4];
int[] combined = [..arr, ..list];
Console.WriteLine(string.Join(",", combined)); // 1,2,3,4

Menyebarkan IEnumerable

Bahkan urutan malas dari LINQ dapat disebarkan; urutan tersebut akan dienumerasi saat koleksi baru dibuat.

using System;
using System.Linq;

var evens = Enumerable.Range(1, 6).Where(n => n % 2 == 0);
int[] result = [0, ..evens];
Console.WriteLine(string.Join(",", result)); // 0,2,4,6

Membangun Koleksi Secara Bertahap

Elemen sebar sangat cocok untuk membangun koleksi secara bertahap tanpa pemanggilan Add yang imperatif.

using System;

int[] baseline = [1, 2, 3];
int[] extra = [4, 5];
int[] full = [..baseline, ..extra, 6];
Console.WriteLine(full.Length); // 6

Urutan Itu Penting

Urutan yang dihasilkan mengikuti urutan teks elemen dan elemen sebar, sehingga menukar posisi elemen sebar akan mengubah hasilnya.

using System;

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

Elemen Sebar dibandingkan dengan Concat

Elemen sebar sering menggantikan Concat + ToArray. Bentuk ini lebih mudah dibaca dan memungkinkan kompilator menentukan ukuran hasil secara efisien.

using System;
using System.Linq;

int[] a = [1, 2];
int[] b = [3, 4];
// old
int[] oldWay = a.Concat(b).ToArray();
// new
int[] newWay = [..a, ..b];
Console.WriteLine(oldWay.SequenceEqual(newWay)); // True

Menyebarkan ke dalam Span

Karena tipe tujuan dapat berupa rentang, Anda dapat menggabungkan data sekaligus memanfaatkan kemungkinan alokasi tumpukan pada jalur yang sensitif terhadap kinerja.

using System;

ReadOnlySpan<int> head = [1, 2];
ReadOnlySpan<int> tail = [3, 4];
int[] joined = [..head, ..tail];
Console.WriteLine(string.Join(",", joined)); // 1,2,3,4

Penggabungan Praktis

Di sini kita menggabungkan pengaturan bawaan dengan penggantian dalam satu ekspresi, dengan mempertahankan nilai yang muncul setelah pengaturan bawaan.

using System;

string[] defaults = ["--verbose", "--color"];
string[] userArgs = ["--output=log.txt"];
string[] finalArgs = [..defaults, ..userArgs];
Console.WriteLine(string.Join(" ", finalArgs));

Pemeriksaan Singkat

Verifikasi pemahaman Anda tentang elemen sebar.

Rangkuman

Anda telah mempelajari elemen sebar .. di dalam ekspresi koleksi.

  • [..a, ..b] menggabungkan koleksi.
  • Elemen sebar dapat dicampur dengan elemen tunggal dan mempertahankan urutan.
  • Sumbernya dapat berupa array, daftar, rentang, atau IEnumerable apa pun.
  • Elemen sebar adalah alternatif yang lebih jelas daripada Concat().ToArray().

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Elemen Spread” gratis?

Ya — teks lengkap “Elemen Spread” 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 “Elemen Spread”?

Gabungkan koleksi dengan operator spread. 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 2 dari 4.

Berapa lama pelajaran “Elemen Spread” 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. Sintaks Ekspresi Koleksi
  2. Elemen Spread
  3. Pengetikan Koleksi Berdasarkan Target
  4. Pembuat Koleksi
← Kembali ke C# Academy