Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Eine Dictionary<TKey,TValue> enthält eine Sammlung von Schlüssel-Wert-Paaren. Die Add-Methode nimmt zwei Parameter an, einen für den Schlüssel und einen für den Wert. Eine Möglichkeit, um eine Dictionary<TKey,TValue>-Klasse oder eine beliebige Sammlung zu initialisieren, deren Add-Methode mehrere Parameter annimmt, ist es, jedes Parameterpaar in Klammern einzuschließen, so wie im folgenden Beispiel dargestellt. Eine andere Möglichkeit besteht darin, einen Index-Initialisierer zu verwenden, wie im nächsten Beispiel gezeigt wird.
Hinweis
Der Hauptunterschied zwischen diesen beiden Methoden zum Initialisieren der Auflistung besteht darin, wie duplizierte Schlüssel behandelt werden, z. B.:
{ 111, new StudentName { FirstName="Sachin", LastName="Karnik", ID=211 } },
{ 111, new StudentName { FirstName="Dina", LastName="Salimzianova", ID=317 } },
Add-Methode wirft: ArgumentException, während der zweite Teil des Beispiels 'An item with the same key has already been added. Key: 111', die öffentliche Lese-/Schreib-Indexer-Methode, den bereits vorhandenen Eintrag mit demselben Schlüssel leise überschreibt.
Beispiel
Im folgenden Codebeispiel wird Dictionary<TKey,TValue> mit Instanzen vom Typ StudentName initialisiert. Die erste Initialisierung verwendet die Add-Methode mit zwei Argumenten. Der Compiler führt für Add einen Aufruf für jedes der Paare von int-Schlüsseln und StudentName-Werten durch. Bei der zweiten Initialisierung wird eine öffentliche Indexermethode der Dictionary-Klasse für Lese- und Schreibvorgänge verwendet:
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}");
}
}
}
Beachten Sie die zwei Paare geschweifter Klammern in jedem Element der Collection in der ersten Deklaration. Die inneren Klammern umschließen den Objektinitialisierer für StudentName, und die äußeren Klammern umschließen den Initialisierer für das Schlüssel-Wert-Paar, das studentsDictionary<TKey,TValue> hinzugefügt wird. Schließlich wird der ganze Auflistungsinitialisierer für das Wörterbuch in geschweifte Klammern eingeschlossen. Bei der zweiten Initialisierung ist die linke Seite des Arbeitsauftrags der Schlüssel und die rechte Seite ist der Wert. Für StudentName wird ein Objektinitialisierer verwendet.
Verwenden von KI zum Generieren von Testdaten für Wörterbuchsammlungen
Sie können KI-Tools wie GitHub Copilot verwenden, um schnell Wörterbuchtestdaten und Validierungsszenarien in Ihren C#-Projekten zu generieren.
Hier ist eine Beispielaufforderung, die Sie in Visual Studio Copilot Chat verwenden können.
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.
Überprüfen Sie die Vorschläge von Copilot, bevor Sie sie anwenden.
Weitere Informationen zu GitHub Copilot finden Sie in den häufig gestellten Fragen zu GitHub.