.NET 帮助 C# String Equals(开发者用法) Jacob Mellor 已更新:九月 4, 2025 下载 IronPDF NuGet 下载 DLL 下载 Windows 安装程序 免费试用 法学硕士副本 法学硕士副本 将页面复制为 Markdown 格式,用于 LLMs 在 ChatGPT 中打开 向 ChatGPT 咨询此页面 在双子座打开 向 Gemini 询问此页面 在双子座打开 向 Gemini 询问此页面 打开困惑 向 Perplexity 询问有关此页面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 复制链接 电子邮件文章 在 C# 应用程序中处理 PDF 文档时,比较字符串是一个非常常见的任务,无论是检查提取的文本、验证元数据,还是有条件地修改文档。 string.Equals 方法在 C# 中提供了一种精确的方式来比较字符串对象,并且当与 IronPDF 结合使用时,它成为您 PDF 自动化工具包中的强大工具。 在本文中,我们将探讨什么是 string.Equals,它在 .NET 中的重要性,以及如何有效地将其与 IronPDF 结合使用,这是用于生成和操作的领先 .NET PDF 库。 什么是 C# 中的 string.Equals? C 字符串等于方法,在 C# 中称为 string.Equals,用于比较两个参数的内容,这些参数可以是字符串或其他兼容对象。 您可以传递普通的字符串值,也可以是将在比较过程中转换为字符串的类型对象。 与 == 操作符不同的是,它是 equals string 的语法糖,显式地使用 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。 您可以使用不同的 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"); } } } } 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" 水印并保存。 输出 使用 string.Equals 与 IronPDF 的最佳实践 始终指定一个 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 工作流程顺利扩展,同时保持比较的准确性。 错误处理和调试技巧 为了避免运行时问题并确保可靠性: 防范空值,通过检查对象 obj 或字符串是否为空,防止空引用异常。 记录提取的内容,以验证方法在运行时返回的内容。 使用 Trim() 和标准化来处理尾随空格和特殊的 Unicode 字符。 包含围绕 PDF 加载和文本提取的异常处理。 编写单元测试,涵盖各种输入场景,包括区分大小写和不区分大小写的比较。 最后的想法 C# 的 string.Equals 是一个简单而强大的方法,在与 IronPDF 强大的 PDF 功能结合使用时变得更加有效。 无论您是在验证元数据、验证提取的文本,还是应用条件逻辑,这种组合都可以让您完全控制 .NET 中的 PDF 自动化工作流。 🔗 立即开始使用 IronPDF 准备好开始使用 C# 构建智能 PDF 工作流了吗? 下载 IronPDF NuGet 包,探索 .NET PDF 生成、编辑和提取的全部功能。 👉免费试用 IronPDF 。 常见问题解答 C# 中 string.Equals 方法的目的是什么? C# 中的 string.Equals 方法用于比较字符串对象的相等性。它提供了一种精确的方法来确定两个字符串是否具有相同的值,这对于验证 PDF 文档中的元数据或提取的文本等任务是必不可少的。 IronPDF 如何增强 string.Equals 在 C# 应用程序中的使用? IronPDF可以通过提供强大的PDF操作功能来增强string.Equals的使用,包括从PDF文档中提取文本。这使开发人员能够利用string.Equals比较和验证提取的文本,作为他们PDF自动化任务的一部分。 为什么字符串比较在PDF文档处理中特别重要? 字符串比较在PDF文档处理中特别重要,因为它使开发人员能够检查提取的文本、验证元数据,并根据特定字符串值有条件地修改文档,从而确保数据准确性和符合预期内容。 IronPDF 可以处理 PDF 中的元数据验证吗? 是的,IronPDF 可以处理 PDF 中的元数据验证,允许开发人员提取元数据并使用类似 string.Equals 的方法来比较和验证元数据是否符合指定标准。 在何种常见任务中可能会将 string.Equals 与 IronPDF 一起使用? 在一些常见任务中可能会将 string.Equals 和 IronPDF 一起使用,包括检查提取的文本是否符合标准、验证 PDF 文档元数据、以及在进一步处理前确保文档中出现特定字符串。 Jacob Mellor 立即与工程团队聊天 首席技术官 Jacob Mellor 是 Iron Software 的首席技术官,是 C# PDF 技术的先锋工程师。作为 Iron Software 核心代码库的原始开发者,自公司成立以来,他就塑造了公司的产品架构,并与首席执行官 Cameron Rimington 一起将其转变成一家公司,拥有50多人,服务于 NASA、特斯拉和全球政府机构。Jacob 拥有曼彻斯特大学 (1998-2001) 的一级荣誉土木工程学士学位。1999 年在伦敦创办了自己的第一家软件公司,并于 2005 年创建了他的第一个 .NET 组件后,他专注于解决微软生态系统中的复杂问题。他的旗舰 IronPDF 和 Iron Suite .NET 库在全球已获得超过 3000 万次的 NuGet 安装,其基础代码继续为全球使用的开发者工具提供支持。拥有 25 年商业经验和 41 年编程经验的 Jacob 仍专注于推动企业级 C#、Java 和 Python PDF 技术的创新,同时指导下一代技术领导者。 相关文章 已更新十二月 11, 2025 架起 CLI 简洁性与 .NET 的桥梁:使用 IronPDF for .NET 的 Curl DotNet Jacob Mellor 通过 CurlDotNet 填补了这一空白,CurlDotNet 库的创建是为了将 cURL 的熟悉感带入 .NET 生态系统。 阅读更多 已更新九月 4, 2025 RandomNumberGenerator C# 使用 RandomNumberGenerator C# 类可以帮助将您的 PDF 生成和编辑项目提升到一个新的高度。 阅读更多 已更新八月 5, 2025 C# Switch 模式匹配(开发者用法) 与强大的 PDF 库 IronPDF 结合使用,切换模式匹配允许您为文档处理构建更智能、更简洁的逻辑。 阅读更多 RandomNumberGenerator C#C# Switch 模式匹配(开发者...
已更新十二月 11, 2025 架起 CLI 简洁性与 .NET 的桥梁:使用 IronPDF for .NET 的 Curl DotNet Jacob Mellor 通过 CurlDotNet 填补了这一空白,CurlDotNet 库的创建是为了将 cURL 的熟悉感带入 .NET 生态系统。 阅读更多
已更新九月 4, 2025 RandomNumberGenerator C# 使用 RandomNumberGenerator C# 类可以帮助将您的 PDF 生成和编辑项目提升到一个新的高度。 阅读更多