跳過到頁腳內容
.NET幫助

C#字符串等於(它如何對開發者起作用)

在 C# 應用程式中處理 PDF 文件時,比較字串是一項非常常見的任務,無論是檢查提取的文字、驗證元資料或有條件地修改文件。 C# 中的string.Equals方法提供了一種精確比較字串物件的方法,當與IronPDF結合使用時,它就成為了 PDF 自動化工具包中的強大工具。

在本文中,我們將探討 string.Equals 是什麼,為什麼它在.NET中很重要,以及如何將其與IronPDF (領先的.NET PDF 生成和操作庫)有效結合使用。

C# 中的 string.Equals 是什麼?

C 語言的字串相等方法(在 C# 中稱為 string.Equals)用於比較兩個參數的內容,這兩個參數可以表示字串或其他相容物件。 你可以傳遞純字串值,也可以傳遞一個類型對象,該對像在比較過程中將轉換為字串。 與 == 運算子(它是字串相等的語法糖)不同,明確使用 string.Equals 可以讓你:

  • 指定比較規則(例如區分大小寫的比較或不區分文化的比較)。

  • 避免與功能過載的運算子混淆。

  • 提高條件邏輯的可讀性。

在.NET Framework中,方法簽章通常如下所示:

public bool Equals(string value, StringComparison comparisonType)
public bool Equals(string value, StringComparison comparisonType)
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'public bool Equals(string value, StringComparison comparisonType)
$vbLabelText   $csharpLabel

這裡,public bool 表示回傳值將始終根據比較結果為 true 或 false。

基本文法

string.Equals(str1, str2)
string.Equals(str1, str2, StringComparison.OrdinalIgnoreCase)
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)
$vbLabelText   $csharpLabel

此方法接受兩個參數:要比較的兩個字串或字串對象,以及(可選)要執行的比較類型。 傳回值為布林值。 如果兩個參數依照比較規則相等,則該方法傳回 true,否則傳回 false。

您可以使用不同的字串比較選項來比較兩個字串,例如:

*序數(二元比較,區分大小寫比較)

  • OrdinalIgnoreCase (不區分大小寫的比較)

  • CurrentCulture

  • InvariantCultureIgnoreCase

IronPDF的工作原理

IronPDF是一個功能強大的.NET PDF 庫,可用於搜尋、提取和操作 PDF 文件中的文字。 透過使用 string.Equals,您可以:

  • 將提取的字串值與已知值進行比較。

  • 檢查標題、作者和關鍵字等元資料欄位。

  • 有條件地編輯 PDF 文檔,讓您可以根據字串比較結果添加註釋、高亮顯示或浮水印。

讓我們透過以下範例來了解 string.Equals 在IronPDF工作流程中的實用性。

範例 1:將擷取的文字與 string.Equals 進行比較

想像一下,您正在掃描一份 PDF 發票,並想驗證其中是否包含特定的公司名稱。 以下範例示範如何避免常見的陷阱,例如空引用異常,以及該方法如何可靠地檢查相等性。

以下範例將使用此 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");
            }
        }

    }
}
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
$vbLabelText   $csharpLabel

注意:此方法傳回布林值,指示兩個字串物件是否包含相同的值。

為什麼這很重要:

如下面的輸出所示,使用 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.");
}
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
$vbLabelText   $csharpLabel

這種方法在基於元資料的驗證可以防止處理非字串或無效檔案的系統中特別有用。

輸出

控制台輸出

範例 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");
    }
}
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
$vbLabelText   $csharpLabel

透過使用 string.Equals,我們可以檢查輸入的 PDF 文件是否包含將其標記為草稿的文本,如果包含,程式會將我們的"DRAFT"浮水印套用到文件上並儲存它。

輸出

水印輸出

在IronPDF中使用 string.Equals 的最佳實踐

  • 務必指定字串比較,這樣可以避免因文化或大小寫差異而導致的錯誤。

  • 比較使用者輸入或擷取的文字時,請使用 Trim() 或 Normalize()。

  • 對於大型文檔,僅提取必要的頁面或部分,以減少開銷。

  • 將 string.Equals 與 Regex 或 Contains 結合使用,以實現混合字串匹配策略。

IronPDF為何讓一切變得簡單

IronPDF簡化了開發人員與 PDF 互動的方式。 結合 C# 的 string.Equals 方法,它使您能夠建立動態、智慧的 PDF 工作流程,而無需樣板程式碼或第三方工具。

IronPDF的主要優勢:

  • 全文擷取和解析。

  • 輕鬆存取元資料。

  • 使用 C# 原生邏輯進行條件運算。

  • 無需Adobe或MS Office等外部相依性。

深入了解字串比較選項

在 C# 中比較字串時,StringComparison 選項的選擇會大大影響比較的行為和效能。 以下是常用選項的簡要概述:

*序數比較:執行快速的逐字節比較,區分大小寫,不區分區域性。最適合無需考慮區域性的精確匹配。

  • OrdinalIgnoreCase:與上述相同,但忽略大小寫差異。 非常適合用於PDF文字擷取等可能出現大小寫不一致情況的場景。

  • CurrentCulture:考慮程式碼運行環境的文化規則。 在比較應遵循當地語言規範的使用者文字時非常有用。 考慮當前文化,這對於本地化字串比較很有用。

  • CurrentCultureIgnoreCase:與上述相同,但忽略大小寫。

  • InvariantCultureInvariantCultureIgnoreCase:提供跨文化的一致比較,這對於全球化應用程式中的字串相等性至關重要。

選擇正確的選項可以確保字串比較的行為符合預期。 對於透過IronPDF提取的 PDF 文本, OrdinalIgnoreCase通常是最佳選擇,它兼顧了效能和可用性。

大型 PDF 文件的效能考量

高效處理大型 PDF 文件是保持應用程式響應迅速的關鍵。 以下是一些建議:

  • 從特定頁面而非整個文件中提取文字。

  • 多次處理相同文件時,快取提取的文字。

  • 使用 string.Equals 進行精確相等性檢查,使用 Contains 進行子字串匹配,盡可能避免代價高昂的正規表示式運算。

  • 利用非同步處理或平行處理同時處理多個 PDF 檔案。

  • 在比較之前清理和規範化字串(字串 str1、字串 str2),以避免因不可見字元或格式而導致的錯誤不符。

實施這些技術有助於您的 PDF 工作流程優雅地擴展,同時保持比較的準確性。

錯誤處理和調試技巧

為避免運行時問題並確保可靠性:

  • 防止空引用異常,方法是在比較之前檢查物件 obj 或字串是否為空。

  • 記錄提取的內容,以驗證方法在運行時傳回的內容。

  • 使用 Trim() 和規範化來處理尾隨空格和特殊 Unicode 字元。

  • 包含 PDF 載入和文字擷取相關的異常處理。

  • 編寫單元測試,涵蓋各種輸入場景,包括區分大小寫和不區分大小寫的比較。

最後想說的話

C# string.Equals 是一個簡單且強大的方法,當與IronPDF強大的 PDF 功能一起使用時,效果會更好。 無論您是在驗證元資料、驗證提取的文本,還是應用條件邏輯,這種組合都能讓您完全控制.NET中的 PDF 自動化工作流程。

🔗 立即開始使用IronPDF

準備好使用 C# 建立智慧 PDF 工作流程了嗎? 下載IronPDF NuGet包,探索.NET PDF 產生、編輯和提取的全部功能。

👉免費試用IronPDF

常見問題解答

string.Equals 方法在 C# 中的用途是什麼?

C# 中的 string.Equals 方法用於比較字串物件是否相等。它提供了一種精確的方法來判斷兩個字串是否具有相同的值,這對於驗證元數據或 PDF 文檔中的提取文本等任務尤為重要。

IronPDF 如何增強 C# 應用程式中 string.Equals 的使用?

IronPDF 可以通過提供強大的 PDF 操作功能來增強 string.Equals 的使用,其中包括從 PDF 文檔中提取文本。這允許開發者將 string.Equals 用於比較和驗證作為 PDF 自動化任務一部分的提取文本。

為什麼字串比較在 PDF 文檔處理中很重要?

字串比較在 PDF 文檔處理中很重要,因為它可使開發者檢查提取的文本,驗證元數據,並根據特定的字串值有條件地修改文件,從而確保數據準確性並符合預期內容。

IronPDF 可以處理 PDF 中的元數據驗證嗎?

是的,IronPDF 可以處理 PDF 中的元數據驗證,允許開發者提取元數據並使用像 string.Equals 的方法來比較並驗證元數據是否符合指定標準。

IronPDF 中有哪些常見任務使用了 string.Equals?

在 IronPDF 中,常見任務包括檢查提取的文本是否符合標準,驗證 PDF 文件的元數據,以及在進一步處理之前確保文件中有特定字串出現。

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

Jacob Mellor是Iron Software的首席技術官,也是開創C# PDF技術的前瞻性工程師。作為Iron Software核心代碼庫的原始開發者,他自公司成立以來就塑造了公司的產品架構,並與CEO Cameron Rimington將公司轉型為服務NASA、Tesla以及全球政府機構的50多人公司。

Jacob擁有曼徹斯特大學土木工程一級榮譽學士學位(1998年–2001年)。他於1999年在倫敦開立首家軟體公司,並於2005年建立了他的第一個.NET組件,專注於解決Microsoft生態系統中的複雜問題。

他的旗艦作品IronPDF和Iron Suite .NET程式庫全球已獲得超過3000萬次NuGet安裝,他的基礎代碼不斷在全球各地驅動開發者工具。擁有25年以上的商業經驗和41年的編碼專業知識,Jacob仍然專注於推動企業級C#、Java和Python PDF技術的創新,同時指導下一代技術領導者。

鋼鐵支援團隊

我們每週 5 天,每天 24 小時在線上。
聊天
電子郵件
打電話給我