Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
A Dictionary<TKey,TValue> , anahtar/değer çiftlerinden oluşan bir koleksiyon içerir.
Add Yöntemi, biri anahtar ve biri değer için iki parametre alır. Bir veya yöntemi birden çok parametre alan herhangi bir koleksiyonu Dictionary<TKey,TValue> başlatmanın bir Addyolu, aşağıdaki örnekte gösterildiği gibi her parametre kümesini ayraç içine almaktır. Bir diğer seçenek de aşağıdaki örnekte gösterilen bir dizin başlatıcı kullanmaktır.
Not
Koleksiyonu başlatmanın bu iki yolu arasındaki en önemli fark, yinelenen anahtarların nasıl işleneceğini gösterir, örneğin:
{ 111, new StudentName { FirstName="Sachin", LastName="Karnik", ID=211 } },
{ 111, new StudentName { FirstName="Dina", LastName="Salimzianova", ID=317 } },
Add metodu ArgumentException: 'An item with the same key has already been added. Key: 111''yı fırlatır, örneğin ikinci kısmında bulunan public read/write indexer yöntemi, aynı anahtarla zaten var olan girişin üzerine sessizce yazar.
Örnek
Aşağıdaki kod örneğinde, Dictionary<TKey,TValue> türündeki StudentNameörneklerle başlatılır. İlk başlatma, iki bağımsız değişken ile Add yöntemini kullanır. Derleyici, her anahtar ve Add değer çiftine bir int çağrısı oluşturur. İkincisi sınıfının genel okuma/yazma dizin oluşturucu yöntemini Dictionary kullanır:
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}");
}
}
}
İlk bildirimde koleksiyonun her öğesindeki iki küme ayracı çiftini not edin. En içteki ayraçlar StudentName için nesne başlatıcıyı kapsar ve en dıştaki ayraçlar ise studentsDictionary<TKey,TValue> anahtar/değer çiftine eklenecek başlatıcıyı kapsar. Son olarak, sözlüğün tüm koleksiyon başlatıcısı küme ayraçları içine alınır. İkinci başlatmada, atamanın sol tarafı anahtardır, sağ tarafı ise değerdir; StudentName için bir nesne başlatıcısı kullanılır.
Sözlük koleksiyonları için test verileri oluşturmak için yapay zeka kullanma
C# projelerinizde hızla sözlük testi verileri ve doğrulama senaryoları oluşturmak için GitHub Copilot gibi yapay zeka araçlarını kullanabilirsiniz.
Visual Studio Copilot Sohbeti'nde kullanabileceğiniz örnek bir istem aşağıda verilmiştir.
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.
Uygulamadan önce Copilot'un önerilerini gözden geçirin.
GitHub Copilot hakkında daha fazla bilgi için bkz. GitHub'ın SSS'leri.