Bagikan melalui


Gunakan ekspresi koleksi untuk membuat baru (IDE0306)

Harta benda Nilai
Identifikasi Aturan IDE0306
Judul Gunakan ekspresi koleksi untuk implementasi baru
Kategori Gaya
Subkategorie Aturan bahasa (preferensi tingkat ekspresi)
Bahasa yang dapat diterapkan C# 12+
Opsi dotnet_style_prefer_collection_expression

Gambaran Umum

Aturan ini menandai tempat ekspresi koleksi dengan elemen spread (..) dapat digunakan untuk menginisialisasi daftar alih-alih new. Misalnya, aturan ini menawarkan untuk menyederhanakan kode seperti new List<...>(x) ke dalam formulir ekspresi koleksi ([.. x]).

Opsi

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* Lebih suka menggunakan ekspresi koleksi bahkan ketika jenisnya hanya cocok sebagian, 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 baku when_types_loosely_match*

*Saat opsi ini digunakan, perbaikan kode dapat mengubah semantik kode Anda.

Contoh

// Code with violation.
List<int> l1 = new List<int>(Enumerable.Range(1, 10));
List<int> m1 = new List<int>(new[] { 1, 2, 3 });

// Fixed code.
List<int> l1 = [.. Enumerable.Range(1, 10)];
List<int> m1 = [.. new[] { 1, 2, 3 }];

Menyembunyikan peringatan

Jika Anda hanya ingin menyembunyikan satu pelanggaran, tambahkan direktif pra-pemrosesan ke file sumber Anda untuk menonaktifkan dan kemudian mengaktifkan kembali aturan tersebut.

#pragma warning disable IDE0306
// The code that's violating the rule is on this line.
#pragma warning restore IDE0306

Untuk menonaktifkan aturan untuk file, folder, atau proyek, atur tingkat keparahannya ke none dalam file konfigurasi.

[*.{cs,vb}]
dotnet_diagnostic.IDE0306.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 menyembunyikan peringatan analisis kode.

Lihat juga