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.
Dictionary<TKey,TValue> berisi kumpulan pasangan kunci/nilai. Metode Add -nya membutuhkan dua parameter, satu untuk kunci dan satu untuk nilainya. Salah satu cara untuk menginisialisasi Dictionary<TKey,TValue>, atau kumpulan apa pun yang metode Add -nya menggunakan banyak parameter, adalah dengan menyertakan setiap rangkaian parameter dalam kurung kurawal seperti yang ditunjukkan pada contoh berikut. Pilihan lainnya adalah menggunakan penginisialisasi indeks, juga ditunjukkan dalam contoh berikut.
Catatan
Perbedaan utama antara kedua cara menginisialisasi koleksi ini adalah bagaimana kunci duplikat ditangani, misalnya:
{ 111, new StudentName { FirstName="Sachin", LastName="Karnik", ID=211 } },
{ 111, new StudentName { FirstName="Dina", LastName="Salimzianova", ID=317 } },
metode Add menghasilkan ArgumentException: 'An item with the same key has already been added. Key: 111', sedangkan di bagian kedua contoh, metode pengindeks baca/tulis publik, diam-diam menimpa entri yang sudah ada dengan kunci yang sama.
Contoh
Dalam contoh kode berikut, Dictionary<TKey,TValue> diinisialisasi dengan instans berjenis StudentName. Inisialisasi pertama menggunakan metode Add dengan dua argumen. Kompilator membuat panggilan ke Add untuk setiap pasangan kunci int dan nilai StudentName. Yang kedua menggunakan metode pengindeks baca/tulis publik dari kelas Dictionary :
public class HowToDictionaryInitializer
{
class StudentName
{
public string? FirstName { get; set; }
public string? LastName { get; set; }
public int ID { get; set; }
}
public static void Main()
{
var students = new Dictionary<int, StudentName>()
{
{ 111, new StudentName { FirstName="Sachin", LastName="Karnik", ID=211 } },
{ 112, new StudentName { FirstName="Dina", LastName="Salimzianova", ID=317 } },
{ 113, new StudentName { FirstName="Andy", LastName="Ruth", ID=198 } }
};
foreach(var index in Enumerable.Range(111, 3))
{
Console.WriteLine($"Student {index} is {students[index].FirstName} {students[index].LastName}");
}
Console.WriteLine();
var students2 = new Dictionary<int, StudentName>()
{
[111] = new StudentName { FirstName="Sachin", LastName="Karnik", ID=211 },
[112] = new StudentName { FirstName="Dina", LastName="Salimzianova", ID=317 } ,
[113] = new StudentName { FirstName="Andy", LastName="Ruth", ID=198 }
};
foreach (var index in Enumerable.Range(111, 3))
{
Console.WriteLine($"Student {index} is {students2[index].FirstName} {students2[index].LastName}");
}
}
}
Perhatikan dua pasang kurung kurawal di setiap elemen koleksi dalam deklarasi pertama. Kurung kurawal paling dalam mengapit penginisialisasi objek untuk StudentName, dan kurung kurawal terluar mengapit penginisialisasi untuk pasangan kunci/nilai yang akan ditambahkan ke studentsDictionary<TKey,TValue>. Akhirnya, seluruh inisialisasi koleksi untuk kamus ditempatkan dalam tanda kurung kurawal. Pada inisialisasi kedua, sisi kiri penugasan adalah kunci dan sisi kanan adalah nilainya, menggunakan penginisialisasi objek untuk StudentName.
Menggunakan AI untuk menghasilkan data pengujian untuk koleksi kamus
Anda dapat menggunakan alat AI, seperti GitHub Copilot, untuk menghasilkan data pengujian kamus dan skenario validasi dengan cepat dalam proyek C# Anda.
Berikut adalah contoh perintah yang dapat Anda gunakan di Visual Studio Copilot Chat.
Generate data collections for tests to create a separate Dictionary<int, Student> containing 10 valid Student records and 5 invalid records.
- Valid records should have realistic Name and Grade values.
- Invalid records should include cases such as missing Name, Grade < 0, or Grade > 100.
- This dictionary should be used only for testing purposes and not modify existing production code.
- Generate test code that utilizes this test data for validation scenarios.
- Call test method to run the test.
Tinjau saran Copilot sebelum menerapkannya.
Untuk informasi selengkapnya tentang GitHub Copilot, lihat FAQ GitHub.