Zum Fußzeileninhalt springen
.NET HILFE

C# Dictionary Trygetvalue (Wie es für Entwickler funktioniert)

C# ist eine vielseitige und leistungsstarke Sprache, die viele Funktionen bietet. Unter ihnen befindet sich das C# Dictionary.

Grundlagen des C#-Wörterbuchs verstehen

Bevor wir uns mit der Methode TryGetValue befassen, ist es wichtig zu verstehen, was ein Dictionary in C# ist. Einfach ausgedrückt ist ein Dictionary eine Sammlung von Schlüssel/Wert-Paaren. Zum Beispiel könnte man ein Dictionary haben, bei dem die Schlüssel die Namen der Schüler (String-Werte) und die Werte deren jeweiliges Alter (Integer-Werte) sind.

Dictionary<string, int> studentAges = new Dictionary<string, int>
{
    {"Alice", 20},
    {"Bob", 22},
    {"Charlie", 19}
};
Dictionary<string, int> studentAges = new Dictionary<string, int>
{
    {"Alice", 20},
    {"Bob", 22},
    {"Charlie", 19}
};
Dim studentAges As New Dictionary(Of String, Integer) From {
	{"Alice", 20},
	{"Bob", 22},
	{"Charlie", 19}
}
$vbLabelText   $csharpLabel

Die Schlüssel in einem Dictionary sind eindeutig. Man kann auf Schlüssel zugreifen, um den entsprechenden Wert abzurufen, wodurch Dictionaries besonders effizient für Suchfunktionen sind.

Der konventionelle Ansatz: ContainsKey Methode

Beim Arbeiten mit C# Dictionaries ist es eine übliche Aufgabe, einen Wert abzurufen, der einem bestimmten Schlüssel zugeordnet ist. Der direkte Zugriff auf einen nicht existierenden Schlüssel kann jedoch einen KeyNotFoundException-Fehler auslösen und den Programmablauf unterbrechen. Um dies zu vermeiden, ist es gängige Praxis zu überprüfen, ob der angegebene Schlüssel im Dictionary vorhanden ist. Hier kommt die Methode ContainsKey ins Spiel.

Die Methode ContainsKey ist eine einfache und intuitive Funktion, die prüft, ob ein bestimmter Schlüssel im Wörterbuch vorhanden ist. Hier ist die grundlegende Syntax der ContainsKey Methode:

Dictionary<TKey, TValue>.ContainsKey(TKey key)
Dictionary<TKey, TValue>.ContainsKey(TKey key)
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Dictionary<TKey, TValue>.ContainsKey(TKey key)
$vbLabelText   $csharpLabel

Sie nimmt den Schlüssel als Parameter und gibt einen Boolean-Wert zurück. Wenn der Schlüssel im Wörterbuch vorhanden ist, wird true zurückgegeben; Andernfalls wird false zurückgegeben.

Betrachten Sie das folgende Beispiel, bei dem wir ein Dictionary mit Schülernamen als Schlüsseln und deren entsprechendes Alter als Werten haben.

Dictionary<string, int> studentAges = new Dictionary<string, int>
{
    {"Alice", 20},
    {"Bob", 22},
    {"Charlie", 19}
};
Dictionary<string, int> studentAges = new Dictionary<string, int>
{
    {"Alice", 20},
    {"Bob", 22},
    {"Charlie", 19}
};
Dim studentAges As New Dictionary(Of String, Integer) From {
	{"Alice", 20},
	{"Bob", 22},
	{"Charlie", 19}
}
$vbLabelText   $csharpLabel

Wenn Sie nun das Alter einer Schülerin namens "Alice" erfahren möchten, würden Sie zuerst die Methode ContainsKey verwenden, um zu prüfen, ob "Alice" ein Schlüssel im Wörterbuch ist.

string student = "Alice";
if (studentAges.ContainsKey(student))
{
    int age = studentAges[student];
    Console.WriteLine($"{student} is {age} years old.");
}
else
{
    Console.WriteLine($"{student} does not exist in the dictionary.");
}
string student = "Alice";
if (studentAges.ContainsKey(student))
{
    int age = studentAges[student];
    Console.WriteLine($"{student} is {age} years old.");
}
else
{
    Console.WriteLine($"{student} does not exist in the dictionary.");
}
Dim student As String = "Alice"
If studentAges.ContainsKey(student) Then
	Dim age As Integer = studentAges(student)
	Console.WriteLine($"{student} is {age} years old.")
Else
	Console.WriteLine($"{student} does not exist in the dictionary.")
End If
$vbLabelText   $csharpLabel

In diesem Fall gibt das Programm "Alice ist 20 Jahre alt" aus. Wenn Sie versuchen, das Alter eines Schülers abzurufen, der nicht im Wörterbuch vorhanden ist, würde die Methode ContainsKey verhindern, dass ein KeyNotFoundException ausgelöst wird, und stattdessen eine Meldung ausgeben, dass der Schüler nicht existiert.

Die Methode ContainsKey kann zwar nützlich sein, ist aber nicht immer die effizienteste, da zwei Suchvorgänge im Wörterbuch durchgeführt werden: einer für die Methode ContainsKey und einer zum Abrufen des Werts. Dies kann zeitaufwendig sein, insbesondere wenn man mit großen Dictionaries arbeitet.

Während die Methode ContainsKey eine einfache und intuitive Möglichkeit darstellt, Ausnahmen zu behandeln, wenn ein bestimmter Schlüssel in einem Wörterbuch nicht gefunden wird, lohnt es sich, alternative Methoden wie TryGetValue in Betracht zu ziehen, die eine ähnliche Funktionalität mit besserer Leistung erreichen können. Wir werden TryGetValue in den folgenden Abschnitten genauer besprechen.

Kombination von Verifizierung und Abruf mit TryGetValue

Hier kommt die Methode TryGetValue ins Spiel. Die Methode TryGetValue kombiniert die Verifizierung und den Wertabruf in einem einzigen Schritt und bietet nahezu identische Code-Funktionalität bei gleichzeitig verbesserter Leistung.

Die Methode TryGetValue benötigt zwei Parameter:

  1. Der gesuchte Schlüssel.
  2. Ein out-Parameter, der den Wert hält, wenn der Schlüssel existiert.

Hier ist die Syntax:

Dictionary<TKey, TValue>.TryGetValue(TKey key, out TValue value)
Dictionary<TKey, TValue>.TryGetValue(TKey key, out TValue value)
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Dictionary<TKey, TValue>.TryGetValue(TKey key, out TValue value)
$vbLabelText   $csharpLabel

Das Schlüsselwort out wird verwendet, um anzuzeigen, dass diese Methode den Parameter value ändert. Der Wert out wird als Standardwert des Werttyps verwendet, wenn der angegebene Schlüssel nicht gefunden wird (0 für ganze Zahlen, null für Referenztypen). Andernfalls enthält er den Wert, der dem angegebenen Schlüssel entspricht.

Hier erfahren Sie, wie Sie TryGetValue verwenden:

string student = "Alice";
if (studentAges.TryGetValue(student, out int age))
{
    Console.WriteLine($"{student} is {age} years old.");
}
else
{
    Console.WriteLine($"{student} does not exist in the dictionary.");
}
string student = "Alice";
if (studentAges.TryGetValue(student, out int age))
{
    Console.WriteLine($"{student} is {age} years old.");
}
else
{
    Console.WriteLine($"{student} does not exist in the dictionary.");
}
Dim student As String = "Alice"
Dim age As Integer
If studentAges.TryGetValue(student, age) Then
	Console.WriteLine($"{student} is {age} years old.")
Else
	Console.WriteLine($"{student} does not exist in the dictionary.")
End If
$vbLabelText   $csharpLabel

Dieser Code bietet eine nahezu identische Funktionalität wie das Methodenbeispiel ContainsKey, ist aber effizienter, da der Schlüssel nur einmal nachgeschlagen wird.

TryGetValue Codebeispiel in Aktion

Um die Methode TryGetValue besser zu verstehen, wollen wir uns ein praktisches Codebeispiel ansehen. Betrachten Sie eine Schuldatenbank, in der jeder Schüler eine eindeutige ID und einen entsprechenden Namen hat. Diese Daten werden in einem Dictionary mit der Schüler-ID als Schlüssel und dem Namen als Wert gespeichert.

Dictionary<int, string> studentNames = new Dictionary<int, string>
{
    {1, "Alice"},
    {2, "Bob"},
    {3, "Charlie"}
};
Dictionary<int, string> studentNames = new Dictionary<int, string>
{
    {1, "Alice"},
    {2, "Bob"},
    {3, "Charlie"}
};
Dim studentNames As New Dictionary(Of Integer, String) From {
	{1, "Alice"},
	{2, "Bob"},
	{3, "Charlie"}
}
$vbLabelText   $csharpLabel

In diesem Fall wollen Sie den Namen des Schülers mit ID 2 abrufen, möchten aber auch sicherstellen, dass der Schüler mit dieser ID in der Datenbank existiert.

Traditionell würde man zuerst die Methode ContainsKey verwenden, um zu prüfen, ob der Schlüssel (Studenten-ID 2) existiert, und dann auf das Wörterbuch zugreifen, um den entsprechenden Wert (Studentenname) zu erhalten. Mit der Methode TryGetValue lässt sich dies jedoch in einem einzigen Schritt erreichen.

Die Methode TryGetValue benötigt zwei Argumente: den gesuchten Schlüssel und einen Parameter out, der den zu diesem Schlüssel gehörenden Wert enthält, falls dieser existiert. Wenn der Schlüssel gefunden wird, gibt die Methode true zurück und weist dem Parameter out den entsprechenden Wert zu. Andernfalls wird false zurückgegeben, und der Parameter out nimmt den Standardwert für seinen Typ an.

int i = 2; // Student ID
if (studentNames.TryGetValue(i, out string value))
{
    Console.WriteLine($"The name of the student with ID {i} is {value}.");
}
else
{
    Console.WriteLine($"No student with ID {i} exists in the dictionary.");
}
int i = 2; // Student ID
if (studentNames.TryGetValue(i, out string value))
{
    Console.WriteLine($"The name of the student with ID {i} is {value}.");
}
else
{
    Console.WriteLine($"No student with ID {i} exists in the dictionary.");
}
Dim i As Integer = 2 ' Student ID
Dim value As String
If studentNames.TryGetValue(i, value) Then
	Console.WriteLine($"The name of the student with ID {i} is {value}.")
Else
	Console.WriteLine($"No student with ID {i} exists in the dictionary.")
End If
$vbLabelText   $csharpLabel

In diesem Fall sucht die Methode TryGetValue nach dem Schlüssel 2 im Wörterbuch studentNames. Wenn der Schlüssel gefunden wird, weist die Methode der Variablen value (dem Namen des Studenten) den entsprechenden Wert zu und gibt true zurück. Dann druckt das Programm: "Der Name des Schülers mit ID 2 ist Bob."

Wenn die Methode TryGetValue den Schlüssel 2 nicht findet, weist sie der Variablen value den Standardwert für eine Zeichenkette (der null ist) zu und gibt false zurück. Der Code springt dann zum Block else und gibt aus: "Es existiert kein Student mit der ID 2 im Wörterbuch."

TryGetValue optimiert Ihren Code, indem die Prüfung auf Existenz eines Schlüssels und der Abruf von Werten in einem einzigen Schritt kombiniert werden. Darüber hinaus bietet es eine Leistungssteigerung, insbesondere bei größeren Wörterbüchern, da mehrere Schlüsselabfragen überflüssig werden.

Einführung in Iron Suite

Während Sie Ihre Reise in C# fortsetzen, werden Sie viele Tools und Bibliotheken zur Verfügung haben, die Ihre Programmierfähigkeiten erheblich verbessern können. Unter diesen befinden sich die Iron Bibliotheken, eine Suite von Tools, die speziell entwickelt wurden, um die Funktionalität von C#-Anwendungen zu erweitern. Sie umfassen IronPDF, IronXL, IronOCR und IronBarcode. Jede dieser Bibliotheken hat einen einzigartigen Satz von Funktionen und bietet erhebliche Vorteile, wenn sie in Verbindung mit dem Standard-C# verwendet wird.

IronPDF

C#-Wörterbuch `TryGetValue` (So funktioniert es für Entwickler) Abbildung 1

Entdecken Sie IronPDF für PDF-Erstellung in .NET ist eine C#-Bibliothek, die entwickelt wurde, um PDF-Dateien aus HTML zu erstellen, PDF-Inhalte in .NET-Anwendungen zu bearbeiten und zu extrahieren. Mit IronPDF können Sie programmatisch PDF-Berichte generieren, PDF-Formulare ausfüllen und PDF-Dokumente manipulieren. Die Bibliothek bietet auch Funktionen zur Umwandlung von HTML zu PDF, was die Konvertierung vorhandener HTML-Inhalte in PDFs einfach macht.

Das Highlight von IronPDF ist seine HTML zu PDF-Funktion, die alle Layouts und Stile intakt hält. Es erlaubt Ihnen, PDFs aus Webinhalten zu erstellen, die für Berichte, Rechnungen und Dokumentationen geeignet sind. HTML-Dateien, URLs und HTML-Strings können nahtlos in PDFs umgewandelt werden.

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}
using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}
Imports IronPdf

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim renderer = New ChromePdfRenderer()

		' 1. Convert HTML String to PDF
		Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"
		Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent)
		pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf")

		' 2. Convert HTML File to PDF
		Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file
		Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath)
		pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf")

		' 3. Convert URL to PDF
		Dim url = "http://ironpdf.com" ' Specify the URL
		Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
		pdfFromUrl.SaveAs("URLToPDF.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

Im Kontext unseres Themas stellen Sie sich ein Szenario vor, in dem Sie Schülerdaten aus einem Dictionary abrufen und einen PDF-Bericht erstellen möchten. TryGetValue könnte die notwendigen Daten effizient abrufen und dann IronPDF nutzen, um das PDF-Dokument zu erstellen.

IronXL

C#-Wörterbuch `TryGetValue` (So funktioniert es für Entwickler) Abbildung 2

Erforschen Sie IronXL für Excel-Interaktionen ist eine Excel-Bibliothek für C# und .NET. Sie ermöglicht es Entwicklern, Excel-Dateien in .NET-Anwendungen zu lesen, zu schreiben und zu erstellen, ohne Interop. Es ist perfekt für Szenarien, in denen Sie Daten aus einem Excel-Arbeitsblatt exportieren oder importieren müssen.

Angenommen, Sie haben ein Wörterbuch, in dem die Schlüssel die Produkt-IDs und die Werte die jeweiligen Mengen darstellen. Sie könnten TryGetValue verwenden, um die Menge eines bestimmten Produkts abzurufen, und anschließend IronXL verwenden, um diese Menge in einer Excel-Bestandsverwaltungstabelle zu aktualisieren.

IronOCR

C#-Wörterbuch `TryGetValue` (So funktioniert es für Entwickler) Abbildung 3

Nutzen Sie die Leistungsfähigkeit von IronOCR für Texterkennung ist eine fortschrittliche OCR (Optical Character Recognition) und Barcode-Lese-Bibliothek für .NET und C#. Sie ermöglicht es Entwicklern, Texte und Barcodes aus Bildern und PDFs in .NET-Anwendungen zu lesen. Dies kann besonders nützlich sein, wenn Sie Daten aus gescannten Dokumenten oder Bildern extrahieren und in Ihrem Code verwenden müssen.

Stellen Sie sich vor, Sie haben IronOCR verwendet, um Schüler-IDs aus gescannten Dokumenten zu extrahieren. Nach der Verarbeitung speichern Sie die IDs und die entsprechenden Schülerdetails in einem Dictionary. Beim Abrufen der Daten eines bestimmten Schülers könnte TryGetValue verwendet werden, um die Daten effizient aus dem Wörterbuch abzurufen.

IronBarcode

C#-Wörterbuch `TryGetValue` (So funktioniert es für Entwickler) Abbildung 4

Erfahren Sie mehr über IronBarcode für Barcode-Lösungen ist eine Barcode-Lese- und Schreibbibliothek für .NET. Mit IronBarcode können Entwickler verschiedene Barcode- und QR-Code-Formate erzeugen und lesen. Es ist ein leistungsfähiges Werkzeug zum Kodieren und Dekodieren von Daten in einem kompakten, maschinenlesbaren Format.

In einem praktischen Szenario stellen Sie sich vor, dass Sie Barcodes verwenden, um Produktinformationen in einem Einzelhandelssystem zu speichern. Jeder Barcode könnte einer eindeutigen Produkt-ID entsprechen, die als Schlüssel in einem Dictionary gespeichert ist. Beim Scannen eines Barcodes können Sie TryGetValue verwenden, um die zugehörigen Produktdetails schnell aus dem Wörterbuch abzurufen und anzuzeigen.

Abschluss

Nachdem wir die Funktionalitäten der Iron-Bibliotheken in Verbindung mit Standard-C#-Funktionen wie der TryGetValue-Methode untersucht haben, wird deutlich, dass diese Tools Ihren Entwicklungsprozess erheblich verbessern können. Ob Sie mit PDFs, Excels, OCRs oder Barcodes arbeiten, die Iron Suite hat eine Lösung, die auf Ihre Bedürfnisse zugeschnitten ist.

Besonders verlockend ist, dass jedes dieser Produkte eine kostenlose Testversion von Iron Software Products bietet, mit der Sie die Funktionen unverbindlich erkunden und ausprobieren können. Wenn Sie sich entscheiden, die Bibliotheken weiterhin zu nutzen, beginnt die Lizenz für jedes Produkt bei $999. Es liegt jedoch noch mehr Wert darin, wenn Sie an mehreren Iron-Bibliotheken interessiert sind, da Sie die vollständige Iron Suite zum Preis von nur zwei einzelnen Produkten erwerben können.

Häufig gestellte Fragen

Wie verbessert die TryGetValue-Methode die Leistung in C#-Anwendungen?

Die TryGetValue-Methode verbessert die Leistung, indem sie die Schlüsselüberprüfung und die Wertabfrage in einer Operation kombiniert. Dadurch reduziert sich der Bedarf an mehreren Abfragen und die Effizienz wird gesteigert, insbesondere bei großen Datenmengen.

Was ist der Unterschied zwischen den Methoden ContainsKey und TryGetValue in C#?

ContainsKey überprüft, ob ein Schlüssel im Wörterbuch existiert, ohne dessen Wert abzurufen, während TryGetValue die Schlüsselverfügbarkeit überprüft und den Wert, falls vorhanden, in einem Schritt abruft, was es effizienter macht.

Können Iron-Bibliotheken in C# Dictionary-Operationen integriert werden?

Ja, Iron-Bibliotheken wie IronPDF, IronXL, IronOCR und IronBarcode können in C# Dictionary-Operationen integriert werden, um Anwendungen zu verbessern. Beispielsweise kann TryGetValue verwendet werden, um Daten effizient zu verwalten, wenn dynamische Berichte mit IronPDF erstellt werden.

Wie kann IronPDF die Dokumentenerstellung in einer .NET-Anwendung verbessern?

IronPDF ermöglicht die Erstellung, Bearbeitung und Umwandlung von PDFs aus HTML und bewahrt dabei das Layout und den Stil des Dokuments. Es ist besonders nützlich für die programmgesteuerte Erstellung von Berichten, Rechnungen und anderen Dokumentationen innerhalb einer .NET-Anwendung.

Was sind die Vorteile der Verwendung von IronXL für die Tabellenkalkulationsverwaltung in C#?

IronXL bietet Möglichkeiten zum Lesen, Schreiben und Erstellen von Excel-Dateien ohne Interop, was es ideal für Datenexport- und Importaufgaben innerhalb von .NET-Anwendungen macht.

Wie erleichtert IronOCR die Datenauswertung in C#-Anwendungen?

IronOCR ermöglicht die Extraktion von Texten und Barcodes aus Bildern und PDFs, wodurch es nützlich für die Verarbeitung gescannter Dokumente und die Integration der extrahierten Daten in C#-Anwendungen ist.

Welche Rolle spielen IronBarcode-Bibliotheken in der C#-Entwicklung?

IronBarcode ermöglicht die Erzeugung und das Lesen von Barcodes und QR-Codes und bietet damit eine Möglichkeit, Daten in einem maschinenlesbaren Format zu kodieren und zu dekodieren, was für Bestandsverwaltung und andere Anwendungen in C# wichtig ist.

Warum sollten Entwickler die Iron Suite in ihren C#-Projekten verwenden?

Die Iron Suite bietet ein umfassendes Set an Werkzeugen für PDF-, Excel-, OCR- und Barcode-Funktionalitäten, die die Fähigkeiten eines Entwicklers erweitern und es ermöglichen, ein breites Spektrum an Aufgaben effektiv innerhalb von C#-Anwendungen zu bearbeiten.

Jacob Mellor, Chief Technology Officer @ Team Iron
Chief Technology Officer

Jacob Mellor ist Chief Technology Officer bei Iron Software und ein visionärer Ingenieur, der Pionierarbeit in der C# PDF-Technologie leistet. Als der ursprüngliche Entwickler hinter der Kern-Codebasis von Iron Software hat er die Produktarchitektur des Unternehmens seit seiner Gründung geprägt und es zusammen mit CEO ...

Weiterlesen

Iron Support Team

Wir sind 24 Stunden am Tag, 5 Tage die Woche online.
Chat
E-Mail
Rufen Sie mich an