IRONSOFTWAREHOME
AKTUALNOŚCI DLA PROGRAMISTÓW

Aktualizacja dla programistów IronPDF, październik 2022 r.

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Jacob Mellor
Updated: 23 kwietnia 2026

Podczas pracy z dokumentami PDF w aplikacjach C# porównywanie ciągów znaków jest zaskakująco częstym zadaniem, niezależnie od tego, czy sprawdzasz wyodrębniony tekst, weryfikujesz metadane, czy warunkowo modyfikujesz dokumenty. Metoda string.Equals w języku C# zapewnia precyzyjny sposób porównywania obiektów typu string, a w połączeniu z IronPDF staje się potężnym narzędziem w zestawie narzędzi do automatyzacji obsługi plików PDF.

W tym artykułe omówimy, czym jest string.Equals, dlaczego ma znaczenie w .NET oraz jak można go efektywnie wykorzystać w połączeniu z IronPDF, wiodącą biblioteką .NET do generowania i edycji plików PDF.

Co to jest string.Equals w C#?

Metoda string equals w języku C, znana w C# jako string.Equals, służy do porównywania zawartości dwóch parametrów reprezentujących ciągi znaków lub inne kompatybilne obiekty. Można przekazać albo zwykłe wartości typu string, albo obiekt typu, który zostanie przekształcony na ciąg znaków podczas porównywania. W przeciwieństwie do operatora ==, który jest cukrem syntaktycznym dla wyrażenia equals string, użycie string.Equals pozwala wprost na:

  • Określ zasady porównywania (takie jak porównywanie uwzględniające wielkość liter lub porównywanie niezależne od kultury).

  • Należy unikać niejasności związanych z operatorami wieloznacznymi.

  • Popraw czytelność logiki warunkowej.

W platformie .NET Framework sygnatura metody często wygląda następująco:

public bool Equals(string value, StringComparison comparisonType)

W tym przypadku public bool oznacza, że wartość zwracana będzie zawsze true lub false w zależności od wyniku porównania.

Podstawowa składnia

string.Equals(str1, str2)
string.Equals(str1, str2, StringComparison.OrdinalIgnoreCase)

Ta metoda przyjmuje dwa parametry: dwa ciągi znaków lub obiekty typu string do porównania oraz, opcjonalnie, typ porównania, które ma zostać wykonane. Wartość zwracana jest typu boolean. Metoda zwróci wartość true, jeśli oba argumenty są równe zgodnie z regułami porównania, w przeciwnym razie zwróci wartość false.

Można porównać dwa ciągi znaków, korzystając z różnych opcji StringComparison, takich jak:

  • Porządkowe (porównanie binarne, porównanie z uwzględnieniem wielkości liter)

  • OrdinalIgnoreCase (porównanie bez uwzględniania wielkości liter)

  • CurrentCulture

  • InvariantCultureIgnoreCase

Jak to działa z IronPDF

IronPDF to potężna biblioteka .NET do obsługi plików PDF, która umożliwia wyszukiwanie, wyodrębnianie i edycję tekstu w dokumentach PDF. Korzystając z metody string.Equals, można:

  • Porównaj wyodrębnioną wartość ciągu znaków ze znaną wartością.

  • Sprawdź pola metadanych, takie jak tytuł, autor i słowa kluczowe.

  • Warunkowo edytuj dokumenty PDF, umożliwiając dodawanie adnotacji, podświetleń lub znaków wodnych w oparciu o wyniki porównania ciągów.

Przeanalizujmy poniższe przykłady, w których funkcja string.Equals okazuje się przydatna w procesach IronPDF.

Przykład 1: Porównaj wyodrębniony tekst za pomocą string.Equals

Wyobraź sobie, że skanujesz fakturę w formacie PDF i chcesz sprawdzić, czy zawiera ona nazwę konkretnej firmy. Oto przykład pokazujący, jak uniknąć typowych pułapek, takich jak wyjątek odwołania do wartości null, oraz w jaki sposób metoda solidnie sprawdza równość.

W poniższym przykładzie zostanie wykorzystany ten plik PDF:

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

    }
}

Uwaga: Metoda zwraca wartość logiczną wskazującą, czy dwa obiekty typu string zawierają tę samą wartość.

Dlaczego to ma znaczenie:

Jak widać w poniższej wyjściowej, użycie string.Equals z StringComparison.OrdinalIgnoreCase sprawia, że "ACME CORPORATION" i "Acme Corporation" są traktowane jako równe — co jest istotne w scenariuszach OCR lub wyodrębniania tekstu, gdzie różnice w wielkości liter mogą powodować odmienne zachowanie.

Wynik

Wyjście konsoli

Przykład 2: Sprawdzanie poprawności metadanych pliku PDF za pomocą metody string.Equals

Pliki PDF często zawierają pola metadanych takie jak Tytuł, Autor i Temat. IronPDF umożliwia odczyt tych właściwości, co ułatwia ich sprawdzanie i porównywanie.

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

Metoda ta jest szczególnie przydatna w systemach, w których walidacja oparta na metadanych zapobiega przetwarzaniu plików, które nie są ciągami znaków lub są nieprawidłowe.

Wynik

Wyjście konsoli

Przykład 3: Dodaj znak wodny na podstawie dopasowania tekstu

Możesz chcieć automatycznie umieszczać znak wodny w dokumentach PDF zawierających określone słowa kluczowe. Oto jak to zrobić:

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

Korzystając z funkcji string.Equals, możemy sprawdzić, czy wprowadzony dokument PDF zawiera tekst oznaczający go jako wersję roboczą, a jeśli tak, program nałoży na dokument nasz znak wodny "DRAFT" i go zapisze.

Wynik

Wyjście z znakiem wodnym

Najlepsze praktyki dotyczące używania string.Equals z IronPDF

  • Zawsze należy określić StringComparison, co pozwala uniknąć błędów wynikających z różnic kulturowych lub wielkości liter.

  • Używaj funkcji Trim() lub Normalize() podczas porównywania tekstu wprowadzonego przez użytkownika lub wyodrębnionego.

  • W przypadku dużych dokumentów należy wyodrębnić tylko niezbędną stronę lub fragment, aby zmniejszyć obciążenie.

  • Połącz string.Equals z Regex lub Contains, aby uzyskać hybrydowe strategie dopasowywania ciągów znaków.

Dlaczego IronPDF ułatwia pracę

IronPDF usprawnia sposób, w jaki programiści korzystają z plików PDF. W połączeniu z metodą string.Equals języka C# umożliwia tworzenie dynamicznych, inteligentnych procesów pracy z plikami PDF bez konieczności stosowania szablonowych rozwiązań lub narzędzi innych firm.

Kluczowe zalety IronPDF:

  • Pełne wyodrębnianie i analizowanie tekstu.

  • Łatwy dostęp do metadanych.

  • Manipulacja warunkowa z wykorzystaniem natywnej logiki C#.

  • Nie ma potrzeby korzystania z zewnętrznych zależności, takich jak Adobe czy MS Office.

Dogłębna analiza opcji StringComparison

Podczas porównywania ciągów znaków w języku C# wybór opcji StringComparison może mieć duży wpływ na zachowanie i wydajność porównań. Oto krótki przegląd najczęściej używanych opcji:

  • Ordinal: Wykonuje szybkie porównanie bajt po bajcie, uwzględniające wielkość liter i nie uwzględniające ustawień regionalnych. Najlepsze rozwiązanie w przypadku dokładnych dopasowań, gdzie ustawienia regionalne nie mają znaczenia.

  • OrdinalIgnoreCase: Tak samo jak powyżej, ale ignoruje różnice w wielkości liter. Idealny do scenariuszy takich jak ekstrakcja tekstu z plików PDF, gdzie mogą wystąpić niespójności w wielkości liter.

  • CurrentCulture: Uwzględnia reguły kulturowe środowiska, w którym działa kod. Przydatne przy porównywaniu tekstów przeznaczonych dla użytkowników, które powinny być zgodne z normami językowymi danego regionu. Należy wziąć pod uwagę aktualną kulturę, co jest przydatne przy porównywaniu zlokalizowanych ciągów znaków.

  • CurrentCultureIgnoreCase: Tak samo jak powyżej, ale z pominięciem wielkości liter.

  • InvariantCulture i InvariantCultureIgnoreCase: Zapewniają spójne porównanie międzynarodowe, co jest kluczowe dla równości ciągów w zglobalizowanych aplikacjach.

Wybór właściwej opcji gwarantuje, że porównania ciągów znaków będą przebiegać w przewidywalny sposób. W przypadku tekstu z plików PDF wyodrębnionego za pomocą IronPDF często najlepszym wyborem jest OrdinalIgnoreCase, zapewniający równowagę między wydajnością a użytecznością.

Kwestie związane z wydajnością w przypadku dużych dokumentów PDF

Efektywna obsługa dużych plików PDF ma kluczowe znaczenie dla utrzymania responsywności aplikacji. Oto kilka wskazówek:

  • Wyodrębnij tekst z określonych stron, a nie z całego pliku.

  • Buforuj wyodrębniony tekst podczas wielokrotnego przetwarzania tego samego dokumentu.

  • Używaj string.Equals do sprawdzania dokładnej zgodności i Contains do dopasowywania podciągów, unikając w miarę możliwości kosztownych operacji wyrażeniami regularnymi.

  • Wykorzystaj przetwarzanie asynchroniczne lub równoległe, aby obsługiwać wiele plików PDF jednocześnie.

  • Przed porównaniem należy oczyścić i znormalizować ciągi znaków (string str1, string str2), aby uniknąć fałszywych niezgodności spowodowanych niewidocznymi znakami lub formatowaniem.

Wdrożenie tych technik pomaga w płynnym skalowaniu procesów związanych z plikami PDF, zachowując jednocześnie dokładność porównań.

Wskazówki dotyczące obsługi błędów i debugowania

Aby uniknąć problemów podczas działania i zapewnić niezawodność:

  • Należy zabezpieczyć się przed wartościami null, aby zapobiec wyjątkom odwołania do wartości null, sprawdzając przed porównaniem, czy obiekt obj lub ciągi znaków nie są null.

  • Rejestruj wyodrębnione treści, aby sprawdzić, co zwraca metoda w czasie wykonywania.

  • Użyj funkcji Trim() i normalizacji, aby obsłużyć spacje końcowe i specjalne znaki Unicode.

  • Uwzględnij obsługę wyjątków związanych z ładowaniem plików PDF i wyodrębnianiem tekstu.

  • Napisz testy jednostkowe, które obejmują różne scenariusze wejściowe, w tym porównania uwzględniające i nie uwzględniające wielkości liter.

Podsumowanie

Metoda string.Equals w języku C# to prosta, ale potężna funkcja, która staje się jeszcze bardziej skuteczna w połączeniu z rozbudowanymi funkcjami obsługi plików PDF oferowanymi przez IronPDF. Niezależnie od tego, czy weryfikujesz metadane, sprawdzasz poprawność wyodrębnionego tekstu, czy stosujesz logikę warunkową, ta kombinacja zapewnia pełną kontrolę nad procesami automatyzacji plików PDF w środowisku .NET.

🔗 Zacznij korzystać z IronPDF już dziś

Gotowy do tworzenia inteligentnych procesów pracy z plikami PDF w języku C#? Pobierz pakiet IronPDF NuGet i odkryj pełen potencjał generowania, edycji i wyodrębniania plików PDF w środowisku .NET.

👉 Wypróbuj za darmo dzięki bezpłatnej wersji próbnej.

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Dyrektor ds. technologii

Jacob Mellor jest Chief Technology Officer w Iron Software i wizjonerskim inżynierem, pionierem technologii C# PDF. Jako pierwotny deweloper głównej bazy kodowej Iron Software, kształtuje architekturę produktów firmy od jej początku, przekształcając ją wspólnie z CEO Cameron Rimington w firmę liczącą ponad 50 osób, obsługującą NASA, Teslę i światowe agencje rządowe.

...
Czytaj więcej

Powiązane artykuły

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta