Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
| Harta benda | Nilai |
|---|---|
| Identifikasi Aturan | IDE0305 |
| Judul | Gunakan ekspresi koleksi untuk menulis kode dengan lebih lancar. |
| Kategori | Gaya |
| Subkategori | Aturan bahasa (preferensi tingkat ekspresi) |
| bahasa yang berlaku | C# 12+ |
| Opsi | dotnet_style_prefer_collection_expression |
Ikhtisar
Aturan ini menandai tempat di mana koleksi dibangun secara lancar, yaitu, di mana metode seperti , Add(), AddRange(), AsSpan(), dan ToList() ditautkan. Sebagai gantinya, ekspresi koleksi dapat digunakan untuk menginisialisasi koleksi. Misalnya, x.AddRange(y).Add(z).AsSpan() dikonversi ke [x, ..y, z].
Pilihan
Opsi menentukan perilaku yang Anda inginkan untuk diberlakukan aturan. Untuk informasi tentang mengonfigurasi opsi, lihat format Opsi .
dotnet_style_prefer_collection_expression (preferensi gaya dotnet untuk ekspresi koleksi)
| Harta benda | Nilai | Deskripsi |
|---|---|---|
| Nama opsi | dotnet_style_prefer_collection_expression (preferensi gaya dotnet untuk ekspresi koleksi) | |
| nilai opsi | true | when_types_exactly_match |
Lebih suka menggunakan ekspresi koleksi hanya ketika jenis cocok persis, misalnya, List<int> list = new List<int>() { 1, 2 };. |
when_types_loosely_match* |
Sebaiknya gunakan ekspresi koleksi, bahkan ketika tipe datanya tidak sepenuhnya cocok, misalnya, IEnumerable<int> list = new List<int>() { 1, 2 };. Jenis yang ditargetkan harus cocok dengan jenis di sisi kanan atau menjadi salah satu jenis berikut: IEnumerable<T>, ICollection<T>, IList<T>, IReadOnlyCollection<T>, IReadOnlyList<T>. |
|
false | never |
Menonaktifkan aturan. | |
| nilai opsi default | when_types_loosely_match* |
*Saat opsi ini digunakan, perbaikan kode dapat mengubah semantik kode Anda.
Contoh
// Code with violation.
List<int> i = new[] { 1, 2, 3 }.ToList();
IEnumerable<int> j = new[] { 1, 2, 3 }.ToList();
// Fixed code.
List<int> i = [1, 2, 3];
IEnumerable<int> j = [1, 2, 3];
Menyembunyikan peringatan
Jika Anda hanya ingin menekan satu pelanggaran, tambahkan direktif prapemrosesan ke file sumber Anda sementara menonaktifkan dan mengaktifkan kembali aturan tersebut.
#pragma warning disable IDE0305
// The code that's violating the rule is on this line.
#pragma warning restore IDE0305
Untuk menonaktifkan aturan untuk file, folder, atau proyek, atur tingkat keparahannya ke none dalam file konfigurasi .
[*.{cs,vb}]
dotnet_diagnostic.IDE0305.severity = none
Untuk menonaktifkan semua aturan gaya kode, atur tingkat keparahan untuk kategori Style ke none dalam file konfigurasi .
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none
Untuk informasi selengkapnya, lihat Cara menekan peringatan analisis kode.
Lihat juga
- Gunakan ekspresi koleksi untuk array (IDE0300)
- Gunakan ekspresi koleksi untuk menyatakan kosong (IDE0301)
- Gunakan ekspresi koleksi untuk stackalloc (IDE0302)
-
Gunakan ekspresi koleksi untuk
Create()(IDE0303) - Gunakan ekspresi koleksi untuk pembangun (IDE0304)