在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
C# 是一種多功能且強大的語言,提供了許多功能。 其中之一是 C# 字典。
在深入了解 TryGetValue
方法之前,必須了解 C# 中的字典。 簡單來說,字典是一組鍵值對。 例如,您可能有一個字典,其中鍵是學生的名字(字串值),這些值是他們相應的年齡(整數值).
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}
}
字典中的鍵是唯一的。 你可以通過訪問鍵來獲取對應的值,使得字典在查找功能上非常高效。
ContainsKey
方法在處理 C# 字典時,一個常見的任務是獲取與特定鍵相關聯的值。 但是,直接訪問不存在的鍵會引發 KeyNotFoundException
,中斷程序的流程。 為了避免這種情況,一般做法是檢查指定的鍵是否存在於字典中。 這就是ContainsKey
方法發揮作用的地方。
ContainsKey
方法是一個簡單直觀的函數,用於檢查某個鍵是否存在於字典中。 以下是 ContainsKey
方法的基本語法:
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)
它將鍵作為參數並返回布林值。 如果鍵存在於字典中,它將返回 true
; 如果沒有,就會返回 false
。
請考慮以下範例,我們有一個以學生姓名作為鍵,並將他們的年齡作為值的字典。
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}
}
現在,如果您想獲取名為“Alice”的學生的年齡,您應先使用ContainsKey
方法來檢查“Alice”是否在字典中。
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
在這種情況下,程序會印出「Alice is 20 years old.」。如果您嘗試獲取不在字典中的學生年齡,ContainsKey
方法將防止拋出 KeyNotFoundException
,並改為列印一條消息表示該學生不存在。
然而,雖然 ContainsKey
方法可以很有用,但它並非總是最有效率的。 在上面的程式碼片段中,對字典進行了兩次查找操作:一次使用 ContainsKey
方法,另一次用於檢索值。 這可能會很耗時,尤其是在處理大型字典時。
雖然 ContainsKey
方法是一種簡單且直觀的方式來處理在 Dictionary 中未找到指定鍵時的異常情況,但值得考慮像 TryGetValue
這樣的替代方法,這些方法可以在性能更佳的情況下實現類似的功能。 我們將在以下部分更詳細地討論 TryGetValue
。
TryGetValue
這就是 TryGetValue
方法派上用場的地方。 TryGetValue
方法將驗證和取值結合在一步操作中,提供了幾乎相同的程式碼功能,但效能更佳。
TryGetValue
方法需要兩個參數:
您正在尋找的鑰匙。
一個 out 參數,如果鍵存在,則將保留其值。
以下是語法:
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)
`out` 關鍵字用來表示這個方法會改變 `value` 參數。
``` 如果未找到指定的鍵,則 `out` 值將是值類型的預設值(整數使用 0,引用類型使用 null). 否則,它會持有對應所提供鍵的值。
以下是如何使用 `TryGetValue`:
```cs
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為鍵,姓名為值。
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"}
}
在這種情況下,假設您想要檢索ID為2的學生姓名,但您也想確保該ID的學生存在於資料庫中。
傳統上,你可能會先使用 ContainsKey
方法來檢查這個鍵是否(學生證號碼 2)存在後,訪問詞典以獲取相應的值。(學生姓名). 然而,使用 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.");
}
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
在這種情況下,TryGetValue
方法在 studentNames
字典中尋找鍵 2。 如果找到鑰匙,則將相應的值賦給 value
變量(學生的名字),該方法返回true
。 然後,程式會印出,「ID 為 2 的學生姓名是 Bob。」
如果 TryGetValue
方法未找到鍵 2,將分配字串的預設值。(為空)到 value
變數,且方法會返回 false
。 然後程式碼進入else
區塊,輸出 "字典中不存在 ID 為 2 的學生。"
TryGetValue
通過將鍵存在檢查和值檢索結合為一步來簡化您的代碼。此外,它提供了性能提升,特別是在較大的字典中,通過消除多次鍵查找操作。
隨著您在 C# 領域中的持續進步,您會發現有許多工具和庫可以顯著增強您的程式設計能力。 在這些工具中,Iron 函式庫是一套專為擴展 C# 應用程式功能而設計的工具。 它們包括IronPDF、IronXL、IronOCR和IronBarcode。 每個這些庫都有一套獨特的功能,並且在與標準 C# 結合使用時,它們都提供了顯著的優勢。
探索 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");
}
}
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
在我們的主題背景下,想像一個場景,你正在從一個字典中檢索學生數據,並希望生成一份 PDF 報告。 TryGetValue
可以高效地獲取所需的數據,然後利用 IronPDF 來創建 PDF 文件。
探索 IronXL 的 Excel 互動功能是一個適用於 C# 和 .NET 的 Excel 庫。 它使開發人員能夠在 .NET 應用程序中讀取、寫入和創建 Excel 文件,而不需要 Interop。這對於需要從 Excel 試算表導出或導入數據的情況非常完美。
關於 TryGetValue
,假設你有一個字典,其中鍵代表產品ID,值代表它們的數量。 您可以使用 TryGetValue
來檢索特定產品的數量,然後使用 IronXL 在 Excel 庫存管理電子表格中更新該數量。
釋放 IronOCR 的文字識別力量是一種先進的OCR(光學字符識別)和條碼讀取程式庫適用於.NET和C#。 它允許開發人員在 .NET 應用程式中從圖像和 PDF 讀取文字和條碼。 當您需要從掃描文件或圖像中提取數據並在代碼中使用時,這將特別有用。
考慮一個使用 IronOCR 從掃描文件中提取學生證號碼的情景。 處理後,您將 ID 和相應的學生資料存儲在字典中。 在檢索某個學生的詳細資料時,可以使用 TryGetValue
高效地從字典中獲取數據。
了解 IronBarcode 的條碼解決方案是一個用於 .NET 的條碼讀取和寫入庫。 使用IronBarcode,開發人員可以生成和讀取各種條形碼和QR碼格式。 這是用於以緊湊、機器可讀格式編碼和解碼數據的強大工具。
在實際情境中,想像你在零售系統中使用條形碼來儲存產品信息。 每個條碼可以對應於儲存在字典中的唯一產品 ID。 當條碼被掃描時,你可以使用 TryGetValue
從字典中快速獲取並顯示相關產品詳情。
當我們探討了 Iron 函式庫與 C# 標準功能(如 TryGetValue
方法)的結合功能時,很明顯這些工具可以顯著提升您的開發過程。 無論您是在處理PDF、Excel文件、OCR或條碼,Iron Suite有一種針對您的需求量身打造的解決方案。
更誘人的是,這些產品中的每一個都提供一個Iron Software 產品免費試用,讓您可以免費探索和試用這些功能。如果您決定繼續使用這些庫,每個產品的許可證費用從 $749 開始。 然而,如果您對多個 Iron 程式庫感興趣,您可以購買完整的 Iron Suite,只需兩個單獨產品的價格。