
IronPDF 開發者更新,2022 年 10 月
在C#應用程式中處理PDF文件時,字串比較是一項相當常見的任務,無論是檢查提取的文字、驗證元資料,或有條件地修改文件。 C#中的string.Equals方法提供了一種精確的字串物件比較方式,結合IronPDF後,成為您PDF自動化工具包中的強大工具。
在本文中,我們將探討string.Equals是什麼、為何在.NET中重要,以及如何有效地將其與IronPDF結合使用,IronPDF是.NET生成和操作的領先PDF程式庫。
什麼是C#中的string.Equals?
C字串等於方法,在C#中稱為string.Equals,用於比較代表字串或其他相容物件的兩個參數的內容。 您可以傳遞普通的字串值或將在比較過程中轉換為字串的型別物件。 與==運算符不同,==運算符是字串等於的語法糖,顯式使用string.Equals可以讓您:
-
指定比較規則(例如大小寫敏感比較或文化不敏感比較)。
-
避免與重載運算符混淆。
-
提高條件邏輯的可讀性。
在.NET Framework中,方法簽章通常看起來像這樣:
public bool Equals(string value, StringComparison comparisonType)'INSTANT VB TODO TASK: The following line uses invalid syntax:
'public bool Equals(string value, StringComparison comparisonType)這裡,public bool表示根據比較結果返回值始終為true或false。
基本語法
string.Equals(str1, str2)
string.Equals(str1, str2, StringComparison.OrdinalIgnoreCase)'INSTANT VB TODO TASK: The following line uses invalid syntax:
'string.Equals(str1, str2) string.Equals(str1, str2, StringComparison.OrdinalIgnoreCase)該方法接受兩個參數:要比較的兩個字串或字串物件,以及選擇性地要執行的比較型別。 返回值為布林值。 如果兩個參數根據比較規則相等,該方法將返回true,否則返回false。
您可以使用不同的StringComparison選項比較兩個字串,例如:
-
Ordinal(二進位比較,大小寫敏感比較)
-
OrdinalIgnoreCase(大小寫不敏感比較)
-
CurrentCulture
-
InvariantCultureIgnoreCase
它如何與IronPDF協作
IronPDF是一個強大的.NET PDF程式庫,允許您在PDF文件中搜尋、提取和操作文字。 通過使用string.Equals,您可以:
-
比較提取的字串值與已知值。
-
檢查元資料欄位,如標題、作者和關鍵字。
-
有條件地編輯您的PDF文件,讓您可以根據字串比較結果新增註釋、凸顯或水印。
讓我們通過以下範例來演示string.Equals在IronPDF工作流程中的實用性。
範例1:使用string.Equals比較提取的文字
假設您正在掃描一份PDF發票,並想要驗證它是否包含某個特定的公司名稱。 這裡是如何避免常見陷阱如空參考異常,以及該方法如何穩健地檢查相等性。
以下範例將使用這個PDF:

using IronPdf;
using IronPdf.Editing;
class Program
{
public static void Main(string[] args)
{
var pdf = new IronPdf.PdfDocument("invoice.pdf");
string extractedText = pdf.ExtractAllText();
var lines = extractedText.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
foreach (var line in lines)
{
if (string.Equals(line.Trim(), "Acme Corporation", StringComparison.OrdinalIgnoreCase))
{
Console.WriteLine("Exact match found: Acme Corporation");
}
}
}
}Imports Microsoft.VisualBasic
Imports IronPdf
Imports IronPdf.Editing
Friend Class Program
Public Shared Sub Main(ByVal args() As String)
Dim pdf = New IronPdf.PdfDocument("invoice.pdf")
Dim extractedText As String = pdf.ExtractAllText()
Dim lines = extractedText.Split( { ControlChars.Cr, ControlChars.Lf }, StringSplitOptions.RemoveEmptyEntries)
For Each line In lines
If String.Equals(line.Trim(), "Acme Corporation", StringComparison.OrdinalIgnoreCase) Then
Console.WriteLine("Exact match found: Acme Corporation")
End If
Next line
End Sub
End Class注意:該方法返回一個布林值,指示兩個字串物件是否包含相同的值。
為何這很重要:
如以下輸出所示,使用string.Equals與StringComparison.OrdinalIgnoreCase確保"ACME CORPORATION"和"Acme Corporation"被視為相等——這在OCR或文字提取場景中特別重要,因為大小寫敏感差異可能會導致不同行為。
輸出

範例2:使用string.Equals驗證PDF元資料
PDF文件通常包含元資料欄位,如標題、作者和主題。 IronPDF能夠用於讀取這些屬性,使其易於檢視和比較。
using IronPdf;
var pdf = new IronPdf.PdfDocument("invoice.pdf");
string author = pdf.MetaData.Author;
if (string.Equals(author, "Iron Software", StringComparison.InvariantCulture))
{
Console.WriteLine("Invoice was issued by Iron Software.");
}Imports IronPdf
Private pdf = New IronPdf.PdfDocument("invoice.pdf")
Private author As String = pdf.MetaData.Author
If String.Equals(author, "Iron Software", StringComparison.InvariantCulture) Then
Console.WriteLine("Invoice was issued by Iron Software.")
End If該方法在基於元資料驗證防止處理非字串或無效文件的系統中特別有用。
輸出

範例3:基於文字匹配新增水印
您可能希望自動為包含某些關鍵字的PDF文件新增水印。 這裡是怎麼做到的:
using IronPdf;
using IronPdf.Editing;
License.LicenseKey = "IRONSUITE.WRITERS.21046-907F5E67CC-AHYQW6L-RCHLPMRJMU4G-SET72XAF2JNY-LQK45E5JPLGW-XOLPVBEBLHV7-2LHKZRWUZWMO-5LNIZSPF4BM6-UHUH4R-T4MMJ4MEIYSQEA-DEPLOYMENT.TRIAL-LDG2MK.TRIAL.EXPIRES.16.NOV.2025";
var pdf = new IronPdf.PdfDocument("invoice.pdf");
string content = pdf.ExtractAllText();
var lines = content.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
foreach (var line in lines)
{
if (string.Equals(line.Trim(), "DRAFT", StringComparison.OrdinalIgnoreCase))
{
Console.WriteLine("The document is a draft.");
// Corrected HTML and CSS
string watermark = @"<div style='color:red; font-size:72px; font-weight:bold;'>DRAFT</div>";
pdf.ApplyWatermark(watermark, rotation: 45, opacity: 70,
verticalAlignment: VerticalAlignment.Middle,
horizontalAlignment: HorizontalAlignment.Center);
pdf.SaveAs("watermarked_invoice.pdf");
}
}Imports Microsoft.VisualBasic
Imports IronPdf
Imports IronPdf.Editing
License.LicenseKey = "IRONSUITE.WRITERS.21046-907F5E67CC-AHYQW6L-RCHLPMRJMU4G-SET72XAF2JNY-LQK45E5JPLGW-XOLPVBEBLHV7-2LHKZRWUZWMO-5LNIZSPF4BM6-UHUH4R-T4MMJ4MEIYSQEA-DEPLOYMENT.TRIAL-LDG2MK.TRIAL.EXPIRES.16.NOV.2025"
Dim pdf = New IronPdf.PdfDocument("invoice.pdf")
Dim content As String = pdf.ExtractAllText()
Dim lines = content.Split( { ControlChars.Cr, ControlChars.Lf }, StringSplitOptions.RemoveEmptyEntries)
For Each line In lines
If String.Equals(line.Trim(), "DRAFT", StringComparison.OrdinalIgnoreCase) Then
Console.WriteLine("The document is a draft.")
' Corrected HTML and CSS
Dim watermark As String = "<div style='color:red; font-size:72px; font-weight:bold;'>DRAFT</div>"
pdf.ApplyWatermark(watermark, rotation:= 45, opacity:= 70, verticalAlignment:= VerticalAlignment.Middle, horizontalAlignment:= HorizontalAlignment.Center)
pdf.SaveAs("watermarked_invoice.pdf")
End If
Next line通過使用string.Equals,我們可以檢查輸入的PDF文件是否包含將其標記為草稿的文字,如果包含,程式將在該文件上應用我們的"DRAFT"水印並保存它。
輸出

在IronPDF中使用string.Equals的最佳實踐
-
始終指定StringComparison,這可避免由於文化或大小寫差異引起的錯誤。
-
在比較使用者輸入或提取的文字時使用Trim()或Normalize()。
-
對於大型文件,僅提取必要的頁面或段落以減少開銷。
-
將string.Equals與Regex或Contains結合用於混合字串匹配策略。
IronPDF使其變得簡單
IronPDF簡化了開發人員與PDF互動的方式。 結合C#的string.Equals,它使您能夠構建動態、智能的PDF工作流程,無需樣板程式碼或第三方工具。
IronPDF的主要好處:
-
完整的文字提取和解析。
-
易於存取元資料。
-
使用原生C#邏輯進行有條件操作。
-
無需外部依賴如Adobe或MS Office。
深入了解StringComparison選項
在C#中比較字串時,StringComparison選項的選擇會大大影響比較的行為和效能。 這裡是對最常用選項的快速概覽:
-
**Ordinal:**進行快速、按位元組的比較,大小寫敏感且文化不敏感。最好用於不受文化影響的精確匹配。
-
**OrdinalIgnoreCase:**同上,但忽略大小寫差異。 理想用於像PDF文字提取這樣的情境,因為可能會出現大小寫不一致。
-
**CurrentCulture:**考慮執行程式碼環境的文化規則。 當比較面向使用者的文字需要遵循當地語言規範時很有用。 考慮當前文化,適用於本地化字串比較。
-
**CurrentCultureIgnoreCase:**同上,但忽略大小寫。
-
InvariantCulture 和 **InvariantCultureIgnoreCase:**提供跨文化的一致比較,這在全球化應用程式中對字串相等性至關重要。
選擇正確的選項可以確保您的字串比較行為可預測。 對於通過IronPDF提取的PDF文字,OrdinalIgnoreCase通常是最佳選擇,平衡效能和可用性。
大PDF文件的效能考量
有效處理大PDF是維持應用程式響應性的關鍵。 這裡有一些提示:
-
從特定頁面提取文字而不是整個文件。
-
當多次處理相同文件時快取提取的文字。
-
使用string.Equals進行精確相等檢查,使用Contains進行子字串匹配,儘量避免昂貴的正則運算。
-
利用非同步處理或並行化來同時處理多個PDF。
-
在比較前清理和標準化字串(string str1, string str2),以避免由於不可見字元或格式化引起的錯誤匹配。
實施這些技術有助於您的PDF工作流程優雅地擴展,同時保持比較的準確性。
錯誤處理和除錯提示
為避免運行時問題並確保可靠性:
-
防範空值,以防止空引用異常,檢查物件objc或字串是否為null再進行比較。
-
日誌提取的內容,以驗證運行時方法返回的內容。
-
使用Trim()和標準化來處理尾隨空格和特殊的Unicode字元。
-
包含關於PDF載入和文字提取的異常處理。
-
撰寫涵蓋各種輸入場景(包括大小寫敏感和不敏感比較)的單元測試。
最後想法
C#的string.Equals是一個簡單但強大的方法,在搭配IronPDF的強大PDF功能使用時更為有效。 無論您是在驗證元資料、驗證提取的文字,還是應用條件邏輯,這種組合讓您能夠完全控制.NET中的PDF自動化工作流程。
🔗 立即開始使用IronPDF
準備好開始使用C#構建智能的PDF工作流程了嗎? 下載IronPDF NuGet套件並探索.NET PDF生成、編輯和提取的全部功能。
👉 免費試用IronPDF。

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


