Zum Fußzeileninhalt springen
ENTWICKLER-UPDATES

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.

Die Grundlagen des C#-Wörterbuchs verstehen

Bevor Sie in die TryGetValue Methode eintauchen, 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. Allerdings kann der direkte Zugriff auf einen nicht existierenden Schlüssel eine KeyNotFoundException auslösen, die den Programmablauf unterbricht. Um dies zu vermeiden, ist es gängige Praxis zu überprüfen, ob der angegebene Schlüssel im Dictionary vorhanden ist. Hier kommt die ContainsKey Methode ins Spiel.

Die ContainsKey Methode ist eine einfache und intuitive Funktion, die überprüft, ob ein bestimmter Schlüssel im Dictionary 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 sich der Schlüssel im Dictionary befindet, wird true zurückgegeben; wenn nicht, 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 Studentin namens "Alice" herausfinden möchten, würden Sie zuerst die ContainsKey Methode verwenden, um zu prüfen, ob "Alice" ein Schlüssel im Dictionary 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 wird das Programm "Alice ist 20 Jahre alt." ausgeben. Wenn Sie versuchen würden, das Alter eines nicht im Dictionary vorhandenen Studenten zu ermitteln, würde die ContainsKey Methode verhindern, dass eine KeyNotFoundException ausgelöst wird, und stattdessen eine Nachricht ausgeben, dass der Student nicht existiert.

Obwohl die ContainsKey Methode nützlich sein kann, ist sie nicht immer die effizienteste, da zwei Suchvorgänge im Dictionary durchgeführt werden: einer für die ContainsKey Methode und einer, um den Wert abzurufen. Dies kann zeitaufwendig sein, insbesondere wenn man mit großen Dictionaries arbeitet.

Obwohl die ContainsKey Methode eine einfache und intuitive Möglichkeit ist, Ausnahmen zu behandeln, wenn ein bestimmter Schlüssel in einem Dictionary nicht gefunden wird, sollte man alternative Methoden wie TryGetValue in Betracht ziehen, die ähnliche Funktionalität mit besserer Leistung bieten können. Wir werden TryGetValue im Detail in den folgenden Abschnitten besprechen.

Verifizierung und Abruf kombinieren mit TryGetValue

Hier erweist sich die TryGetValue Methode als nützlich. Die TryGetValue Methode kombiniert die Verifizierung und den Werteabruf in einem einzigen Schritt und bietet eine nahezu identische Code-Funktionalität, jedoch mit verbesserter Leistung.

Die TryGetValue Methode erfordert 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 out Schlüsselwort wird verwendet, um anzuzeigen, dass diese Methode den value Parameter ändern wird. Der out Wert wird der Standardwert des Werttyps sein, wenn der angegebene Schlüssel nicht gefunden wird (0 für Integer, null für Referenztypen). Andernfalls enthält er den Wert, der dem angegebenen Schlüssel entspricht.

Hier ist, 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 nahezu identische Funktionalität wie das Beispiel der ContainsKey Methode, ist jedoch effizienter, da er den Schlüssel nur einmal nachschlägt.

TryGetValue im Aktion Codebeispiel

Um die TryGetValue Methode besser zu verstehen, lassen Sie uns ein praktisches Codebeispiel erkunden. 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 könnten Sie zuerst die ContainsKey Methode verwenden, um zu prüfen, ob der Schlüssel (Studenten-ID 2) existiert, und dann auf das Dictionary zugreifen, um den entsprechenden Wert (Studentenname) abzurufen. Mit der TryGetValue Methode können Sie dies jedoch in einem einzigen Schritt erreichen.

Die TryGetValue Methode benötigt zwei Argumente: den Schlüssel, den Sie suchen, und einen out Parameter, der den Wert enthält, der mit diesem Schlüssel verbunden ist, wenn er existiert. Wenn der Schlüssel gefunden wird, gibt die Methode true zurück und weist den entsprechenden Wert dem out Parameter zu. Wenn nicht, gibt sie false zurück, und der out Parameter nimmt den Standardwert seines Typs 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 TryGetValue Methode nach dem Schlüssel 2 im studentNames Dictionary. Wenn sie den Schlüssel findet, weist sie den entsprechenden Wert der value Variablen zu (dem Namen des Studenten), und die Methode gibt true zurück. Dann druckt das Programm: "Der Name des Schülers mit ID 2 ist Bob."

Wenn die TryGetValue Methode den Schlüssel 2 nicht findet, weist sie den Standardwert für eine Zeichenfolge (was null ist) der value Variablen zu, und die Methode gibt false zurück. Der Code durchläuft dann den else Block und gibt aus: "Kein Student mit der ID 2 existiert im Dictionary."

TryGetValue optimiert Ihren Code, indem es die Überprüfung des Schlüssels und den Werteabruf in einem einzigen Schritt kombiniert. Darüber hinaus bietet es einen Leistungsgewinn, insbesondere bei größeren Dictionaries, da es nicht notwendig ist, mehrere Schlüsselüberprüfungsoperationen durchzuführen.

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# Dictionary `TryGetValue` (wie es für Entwickler funktioniert) 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 erforderlichen Daten effizient abrufen und dann IronPDF nutzen, um das PDF-Dokument zu erstellen.

IronXL

C# Dictionary `TryGetValue` (wie es für Entwickler funktioniert) 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.

In Bezug auf TryGetValue, nehmen wir an, Sie haben ein Dictionary, bei dem Schlüssel Produkt-IDs darstellen und Werte deren Mengen repräsentieren. Sie könnten TryGetValue verwenden, um die Menge eines spezifischen Produkts abzurufen und dann IronXL verwenden, um diese Menge in einem Excel-Inventarverwaltungstabelle zu aktualisieren.

IronOCR

C# Dictionary `TryGetValue` (wie es für Entwickler funktioniert) 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 Studenten könnte TryGetValue verwendet werden, um die Daten effizient aus dem Dictionary zu holen.

IronBarcode

C# Dictionary `TryGetValue` (wie es für Entwickler funktioniert) 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. Wenn ein Barcode gescannt wird, könnten Sie TryGetValue verwenden, um schnell die zugehörigen Produktdetails aus dem Dictionary abzurufen und anzuzeigen.

Abschluss

Während wir die Funktionalitäten der Iron-Bibliotheken in Verbindung mit standardmäßigen C#-Funktionen wie der TryGetValue Methode erkundet haben, ist klar, 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.

Was noch verlockender ist, ist, dass jedes dieser Produkte eine kostenlose Testversion von Iron Software-Produkten bietet, sodass Sie die Funktionen kostenlos erkunden und experimentieren können. Wenn Sie sich entscheiden, die Bibliotheken weiterhin zu nutzen, beginnt die Lizenz bei $999 für jedes Produkt. 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