IRONSOFTWAREHOME
開發者更新

C# 字典 Trygetvalue(開發者的工作原理)

Jacob Mellor,首席技術官 @ Team Iron
Jacob Mellor
Updated: 2026年4月21日

C# 是一種多才且強大的語言,提供許多功能。 其中一個是 C# 的 Dictionary。

了解 C# Dictionary的基礎知識

在深入了解 TryGetValue 方法之前,了解Dictionary 在C#中是什麼非常重要。 簡單來說,Dictionary是鍵/值對的集合。 例如,您可能有一個Dictionary,其鍵是學生的名字(字串值),而值是他們對應的年齡(整數值)。

Dictionary<string, int> studentAges = new Dictionary<string, int>
{
    {"Alice", 20},
    {"Bob", 22},
    {"Charlie", 19}
};

Dictionary中的鍵是唯一的。 您可以存取鍵以獲取對應的值,這使得Dictionary在查找功能方面非常高效。

傳統方法:ContainsKey 方法

在使用C# Dictionary時,一個常見的任務是獲取與特定鍵相關的值。 然而,直接存取不存在的鍵可能會拋出KeyNotFoundException,中斷您的程式流程。 為避免這種情況,常見做法是檢查指定的鍵是否存在於Dictionary中。 這就是ContainsKey方法的用武之地。

ContainsKey方法是一個簡單直觀的函式,用於檢查某個鍵是否存在於Dictionary中。 以下是ContainsKey方法的基本語法:

Dictionary<TKey, TValue>.ContainsKey(TKey key)

它將鍵作為參數並返回一個布林值。 如果鍵在Dictionary中,它將返回true; 如果沒有,將返回false。

請考慮以下範例,其中有一個Dictionary,其鍵是學生名字,其值是他們對應的年齡。

Dictionary<string, int> studentAges = new Dictionary<string, int>
{
    {"Alice", 20},
    {"Bob", 22},
    {"Charlie", 19}
};

現在,如果您想獲得名為" Alice "的學生的年齡,您首先會使用ContainsKey方法來檢查" Alice "是否是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.");
}

在這種情況下,程式將列印" Alice is 20 years old." 。如果您嘗試獲取不在Dictionary中的學生的年齡,KeyNotFoundException,而是列印一條學生不存在的消息。

然而,雖然ContainsKey 方法可能很有用,但由於對Dictionary執行兩次查找操作:一次是ContainsKey 方法,然後一次是為了獲取值,因此效率不總是最高的。 這可能會很耗時,尤其是在處理大型Dictionary時。

雖然TryGetValue,它可以在提高效能的同時實現類似功能。 我們將在以下各節中更詳細地討論TryGetValue。

使用TryGetValue結合驗證與檢索

這時候TryGetValue方法就派上用場了。 TryGetValue 方法在單步中結合了驗證和值檢索,提供幾乎相同的程式碼功能但具有更高效的效能。

TryGetValue方法需要兩個參數:

  1. 您正在尋找的鍵。
  2. 一個外部參數,如果鍵存在,它將保存其值。

這裡是語法:

Dictionary<TKey, TValue>.TryGetValue(TKey key, out TValue value)

out 關鍵字用來表示此方法將改變value參數。 如果未找到指定的鍵,out值將是值型別的預設值(整數為0,參考型別為null)。 否則,它將保存與提供鍵對應的值。

這是使用TryGetValue的方法:

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.");
}

該程式碼提供的功能幾乎與ContainsKey 方法範例相同,但更有效率,因為它只查找一次鍵。

TryGetValue 實踐中的範例程式碼

為了更好地理解TryGetValue方法,我們來探索一個實際的程式碼範例。 考慮一個學校資料庫,其中每個學生都有一個唯一的ID和對應的名字。 這些資料儲存在一個以學生ID作為鍵,名字作為值的Dictionary中。

Dictionary<int, string> studentNames = new Dictionary<int, string>
{
    {1, "Alice"},
    {2, "Bob"},
    {3, "Charlie"}
};

在這種情況下,假設您想檢索ID為2的學生的名字,但您也想確保該ID的學生存在於資料庫中。

傳統上,您可能會先使用ContainsKey方法檢查鍵(學生ID2)是否存在,然後存取Dictionary以獲得對應的值(學生名字)。 然而,使用TryGetValue方法,您可以在一步中完成此操作。

TryGetValue 方法接受兩個引數:您正在尋找的鍵和一個out 參數,如果該鍵存在,該參數將保存該鍵相關的值。 如果找到鍵,該方法將返回true 並將對應的值分配給out 參數。 如果沒有,它將返回false ,並且out 參數將獲取其型別的預設值。

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.");
}

在這種情況下,TryGetValue 方法在studentNamesDictionary中查找鍵2。 如果它找到鍵,它會將對應的值分配給true。 然後,程式會列印出" ID為2的學生名字是Bob。"。

如果TryGetValue 方法未找到鍵2,它將為一個字串(即null)分配預設值給value 變數,然後該方法將返回false。 程式碼然後進入else區塊,列印出"在字典中不存在ID為2的學生。"。

TryGetValue通過將鍵存在確認和值檢索結合到一個步驟中來簡化您的程式碼。此外,通過消除多次鍵查找操作的需要,它在更大Dictionary中特別提升了效能。

介紹Iron Suite

隨著您在C#旅程中不斷進步,您將發現提供給您的許多工具和程式庫可以大大增強您的程式設計能力。 其中包括Iron 程式庫,一套專門設計用於擴展C# 應用程式的工具。 它們包括IronPDF、IronXL、IronOCR 和IronBarcode。 這些程式庫中的每一個都有其獨特的功能集合,並且當與標準C#結合使用時,它們都提供了顯著的優勢。

IronPDF

C# Dictionary TryGetValue(它對開發人員的工作方式)圖1

探索IronPDF生成.NET中的PDF是一個C#程式庫,設計用於從HTML建立PDF文件、編輯和提取.NET應用程式中的PDF內容。 使用IronPDF,您可以以程式化的方式生成PDF報告,填寫PDF表單以及操作PDF文件。 該程式庫還提供HTML到PDF的轉換功能,這使得將現有的HTML內容轉換為PDF變得簡單。

IronPDF的亮點是其HTML到PDF功能,它保持所有佈局和樣式不變。 它允許您從網頁內容建立PDF,適用於報告、發票和文件。 HTML文件、URL和HTML字串都可以無縫轉換為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");
    }
}

在我們的話題中,想像一種情況,您從Dictionary中檢索學生資料,並希望生成PDF報告。 TryGetValue可以有效地獲取所需的数据,並然後利用IronPDF建立PDF文件。

IronXL

C# Dictionary TryGetValue(它對開發人員的工作方式)圖2

探索IronXL 進行 Excel 互動是一個用於C#和.NET的Excel程式庫。 它使開發人員能夠在.NET應用程式中讀取、編寫和建立Excel文件而無需使用Interop。這是需要從Excel電子表格導出或導入資料的情境的理想方案。

關於TryGetValue,假設您有一個Dictionary,鍵代表產品ID,值代表其數量。 您可以使用TryGetValue來檢索特定產品的數量,然後使用IronXL來更新Excel庫存管理電子表格中的數量。

IronOCR

C# Dictionary TryGetValue(它對開發人員的工作方式)圖3

釋放IronOCR的文字識別能力 是一個用於.NET和C#的高級OCR(光學字元識別)和條碼讀取程式庫。 它允許開發人員在.NET應用程式中從影像和PDF中讀取文字和條碼。 當您需要從掃描文件或影像中提取資料並在程式中使用時,這特別有用。

設想一個場景,您使用IronOCR從掃描檔中提取學生ID。 處理後,您將ID和對應的學生資訊儲存在Dictionary中。 在檢索特定學生的資料時,TryGetValue可以用來高效地從Dictionary中獲取資料。

IronBarcode

C# Dictionary TryGetValue(它對開發人員的工作方式)圖4

了解IronBarcode 條碼解決方案是一個用於.NET的條碼讀取和寫入程式庫。 使用IronBarcode,開發人員可以生成和讀取各種條碼和QR碼格式。 它是一個強大的工具,用於以緊湊的機器可讀格式編碼和解碼資料。

在實際情況下,想像您正在使用條碼儲存零售系統中的產品資訊。 每個條碼可以對應到作為鍵的唯一產品ID,並儲存在Dictionary中。 當掃描一個條碼時,您可以使用TryGetValue 快速從Dictionary中檢索和顯示相關的產品資料。

結論

正如我們在探討Iron 程式庫與標準C#功能(如TryGetValue 方法)的功能時所顯示的那樣,這些工具可以顯著提高您的開發過程。 無論您是在處理PDF、Excel文件、OCR還是條碼,Iron Suite都有符合您需求的解決方案。

更吸引人的是,每個這些產品都提供Iron Software產品的免費試用,讓您可以免費探索和試驗這些功能。如果您決定繼續使用這些程式庫,授權以$999開頭。 但是,如果您對多個Iron 程式庫有興趣,可以以僅相當於兩個個別產品的價格購買整個Iron Suite,從而獲得更多價值。

Jacob Mellor,首席技術官 @ Team Iron
首席技術官

Jacob Mellor是Iron Software的首席技術官,一位在C# PDF技術上開創先河的遠見工程師。作為Iron Software核心程式碼庫的原開發者,他從創立以來就一直在塑造公司的產品架構,與首席執行官Cameron Rimington一起將公司轉變為服務於NASA、特斯拉和全球政府公司的50多名人員的公司。

...
閱讀更多

相關文章

Key in blue circle

立即免費取得 30 天試用金鑰。

Your trial license will be sent to your email address

無任何限制。100% 解鎖。無需信用卡。

OR
bullet_checked無需信用卡或建立帳號無任何限制。100% 解鎖。無需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
預訂您的免費現場演示
Booking Badge

受到全球數百萬工程師的信任

Iron Software的客戶標誌
獲取您的無義務諮詢
填寫以下表格或電子郵件sales@ironsoftware.com
您的詳細資訊將始終保密。
受到全球數百萬工程師的信任
Iron Software的客戶標誌
立即獲取您的30天試用金鑰。
無需信用卡或帳戶建立
C# 用於PDF的NuGet程式庫
使用NuGet安裝

版本: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. 在解決方案資源管理器,右鍵點選參考,管理NuGet包
  2. 選擇瀏覽並搜尋"IronPdf"
  3. 選擇套件並安裝
C# PDF DLL
下載DLL

版本: 2026.9

或者點擊此處下載Windows安裝程式。

  1. 下載並解壓IronPDF到類似~/Libs的位置,位於您的解決方案目錄中
  2. 在Visual Studio解決方案資源管理器,右鍵點選參考。選擇瀏覽,"IronPdf.dll"

授權從$999起