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,6Mencampur 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,5Menambahkan 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,40Menyebarkan 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,eMenyebarkan 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,4Menyebarkan 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,6Membangun 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); // 6Urutan 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,2Elemen 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)); // TrueMenyebarkan 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,4Penggabungan 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
IEnumerableapa 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.