IRONSOFTWAREHOME
開発者向けアップデート

IndexOf C#(開発者向けの動作方法)

Jacob Mellor, Chief Technology Officer @ Team Iron
Jacob Mellor
Updated: 2026年4月21日

IndexOf の紹介

C# の IndexOf メソッドは、文字列操作と検索操作において基本的なツールです。 特定の文字またはサブ文字列が他の文字列内でどの位置にあるのかを見つけるのに役立ちます。 IndexOf の有効性は、指定された Unicode 文字または文字列の最初の出現のゼロベースのインデックスを提供する能力にあり、テキストデータ操作のユーティリティを強化します。

このメソッドは、個々の文字(Unicode 文字を含む)または文字列を検索でき、さまざまなプログラミングのニーズに柔軟性を提供します。 この記事では、IndexOf メソッドの基本と IronPDF ライブラリの機能について学びます。

基本文法と使用方法

IndexOf の文法

C# の IndexOf の基本文法は非常にシンプルです。 このメソッドにはいくつかのオーバーロードがあり、検索の開始点や検査する文字数を指定する能力を含む、柔軟な検索パラメータを可能にします。

最も単純な形式は public int IndexOf(char value) で、単一の文字を検索します。 また、サブ文字列を検索するための public int IndexOf(string value) もあります。 高度なバージョンでは、開始インデックスや、開始インデックスとカウントの両方を指定することで、検索操作におけるこのメソッドの柔軟性を高めます。

IndexOf の使用

IndexOf の使用法を示すために、大きな文字列内で文字またはサブ文字列の位置を見つける必要がある状況を考えてみましょう。 ここに簡単な例があります:

public static void Main(string[] args)
{
    string str = "Hello, world!";
    int index = str.IndexOf('o');
    Console.WriteLine("The index of 'o' is: " + index);
}

この例に続いて、スニペットは文字 'o' の最初の出現を特定し、その位置を示す以下の出力を表示します。 出力は次のとおりです:

'o' のインデックスは:4
Text

インデックスがゼロベースであることに注意してください。つまり、最初の文字はインデックス 0 から始まります。

高度な検索

開始インデックスの指定

C# の string IndexOf メソッドは、文字列操作のための中核的なユーティリティであり、別の文字列内で指定された文字やサブ文字列を見つけるのに適しています。 これは、文字やサブ文字列の後続の出現を見つけることに興味がある場合に特に有用です。 例えば:

string value = "Brown fox jumps over";
int startIndex = value.IndexOf('o') + 1;
int index = value.IndexOf('o', startIndex);
Console.WriteLine("The index of the second 'o' is: " + index);

まず、コードは 'o' の最初の出現を見つけ、その後最初に見つかったインデックスの直後から次の 'o' を検索します。

コードを実行すると、コンソール出力は次のとおりです:

2 番目の 'o' のインデックスは 7
Text

開始インデックスとカウントを使用した検索

より詳細な調査には、開始インデックスとカウントの両方を指定することが含まれ、次の例で示すように、検索を効率化します。 これにより、文字列内の特定の範囲に検索が制限され、パフォーマンスと精度が最適化されます。 方法は次のとおりです:

string sample = "Sample text for testing";
int startindex = 7;
int count = 10;
int result = sample.IndexOf("text", startindex, count);
Console.WriteLine("Index of 'text': " + result);

このスニペットは、指定範囲内で"テキスト"を検索し、このメソッドが大きな文字列内での検索領域を絞り込む柔軟性を示します。

このコードを実行すると、コンソール出力は次のとおりです:

'text' のインデックス:7
Text

IndexOf のパフォーマンス考察

IndexOf は文字列クエリのための強力なインストルメントとして際立っていますが、データ構造におけるパフォーマンスへの影響を理解することは重要です。 内部では、IndexOf は線形検索を行い、開始点から各文字をチェックし、一致するまで、または検索範囲が終わるまで進みます。

特に Unicode 文字を含む大きな文字列や複雑な検索では、パフォーマンスに影響を与える可能性があります。 したがって、開始インデックスとカウントのパラメータを最適化することにより、IndexOf 操作の効率を大幅に向上させることができます。

IndexOf で特別なケースの処理

IndexOf を使用する際には、文字列検索中に発生する可能性のある特別なケースを処理することが重要です。 これには、ターゲット文字列内に存在しない文字やサブ文字列の検索、空の文字列を使用した IndexOf の動作の理解、および大文字と小文字の区別の処理が含まれます。

存在しない要素の検索

一般的なシナリオの一つは、文字列に存在しない文字やサブ文字列を見つけようとすることです。 こうした場合、メソッドは検索結果を示す値として -1 を返します。 これは、コード内でのエラーを回避するために確認すべき重要な条件です。 処理方法は次のとおりです:

string phrase = "Searching for a missing character";
int index = phrase.IndexOf('x'); // 'x' does not exist in the string
if (index == -1)
{
    Console.WriteLine("文字が見つかりません。");
}
else
{
    Console.WriteLine("Character found at index: " + index);
}

このコードを実行すると、コンソール出力は次のとおりです:

文字が見つかりません。
Text

空の文字列の扱い

もう一つの特別なケースは、検索文字列またはターゲット文字列が空である場合です。 IndexOf は、空のものを含むすべての文字列の開始を空のサブ文字列の有効な位置と見なします。 したがって、任意の文字列内での空の文字列の検索は 0 を返し、文字列の開始を示します。 逆に、空の文字列内で任意の非空のサブ文字列を検索すると、一致の可能性がないため -1 を返します。 この動作を理解することは、正確な検索結果のために重要です。

大文字と小文字の区別および文化的考慮

デフォルトでは、IndexOf メソッドは大文字と小文字を区別します。これは、'a' を検索することが 'A' を検索することとは異なることを意味します。 アプリケーションの要件によっては、大文字と小文字を区別しない検索を行う必要があるかもしれません。 これは、StringComparison 列挙型をパラメータとして受け入れる IndexOf メソッドを使用することで実現できます。 また、IndexOf は Unicode 文字の検索結果に影響を与えることができる文字列比較の文化的ルールを尊重します。 特定の文化的または言語的要件を持つアプリケーションには、CultureInfo オブジェクトを受け入れるオーバーロードを使用してこの動作を調整できます。

例:大文字小文字を区別しない検索

string data = "Case-Insensitive Search Example";
int indexInsensitive = data.IndexOf("search", StringComparison.OrdinalIgnoreCase);
if (indexInsensitive >= 0)
{
    Console.WriteLine("Substring found at index: " + indexInsensitive);
}
else
{
    Console.WriteLine("Substring not found.");
}

このコードスニペットは、大文字小文字の違いが文字列内のサブ文字列の検索能力に影響を与えないことを保証する、大文字と小文字の区別をしない検索を行う方法を示します。

IronPDF: C# PDFライブラリ

IndexOf C# (開発者向けの仕組み): 図1 - IronPDFウェブページ

IronPDF は PDF ドキュメントの作成、編集、および操作を C# を使用して促進することを目的とした、.NET Framework用に設計された包括的なライブラリです。 それは、CSS、JavaScript、および画像を用いて HTML から直接 PDF を生成する アプローチで際立っています。変換プロセスを簡素化し、開発者が迅速かつ効率的にドキュメントを制作できるようにしています。 このライブラリは、Blazor や WebForms のようなウェブアプリケーション、WPF や MAUI を用いたデスクトップアプリケーションなど、さまざまな .NET プロジェクトタイプと互換性があります。 Windows、Linux、Mac、そして Docker のような様々な環境とプラットフォームをサポートしており、さまざまな開発ニーズに対応できます。

IronPDF は HTML から PDF への変換に秀でており、元のレイアウトとスタイルを正確に保存します。 これは、レポート、請求書、ドキュメントなどの Web ベースのコンテンツから PDF を作成するのに最適です。 HTML ファイル、URL、または生の HTML 文字列のサポートにより、IronPDF は高品質な 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");
    }
}

コード例

この例を使用するために、プロジェクトに IronPDF がインストールされていることを確認してください。 そうでない場合は、次のコマンドで NuGet パッケージマネージャを通じて簡単に追加できます:

PM > Install-Package IronPdf

C# での IndexOf 操作と IronPDF の機能を統合するには、通常、PDF ドキュメント内で特定のテキストを見つけ、そのテキストを操作または何らかの方法で相互作用することに興味があります。

以下の例は概念的なもので、PDF からテキストを抽出し、そのテキスト内で特定のサブ文字列の位置を見つけるために IndexOf メソッドを使用するプロセスに焦点を当てています。 IronPDF の API に IndexOf という名前のメソッドが直接公開されていない可能性があることに留意してください。これは C# の string クラスのメソッドです。

using IronPdf;
using System;

class Program
{
    static void Main(string[] args)
    {
        // Create an instance of the IronPDF PDF document reader
        var pdfDocument = PdfDocument.FromFile("path/to/your/document.pdf");
        // Extract all text from the PDF document
        var allText = pdfDocument.ExtractAllText();
        // The text you want to search for in the PDF document
        string searchText = "specific text";
        // Use IndexOf to find the position of searchText in the extracted text
        int position = allText.IndexOf(searchText);
        if (position != -1)
        {
            Console.WriteLine($"Text found at position: {position}");
            // You can perform further operations here, such as highlighting the text in the PDF if supported by IronPDF
        }
        else
        {
            Console.WriteLine("Text not found in the PDF document.");
        }
    }
}

このコードスニペットは、PDF を開き、そのテキストコンテンツを抽出し、そのコンテンツ内で特定の文字列を検索するための基本的なフレームワークを提供します。

このコードを実行すると、コンソール出力は次のとおりです:Text found at position: 1046

結論

IndexOf C# (開発者向けの仕組み): 図2 - IronPDFライセンスページ

要約すると、C# における IndexOf メソッドは、文字列内での文字またはサブ文字列を効率的に検索するためのプログラマーのツールキットの必需品です。 さまざまなオーバーロードを通じて、さまざまなテキスト処理タスクを処理するための柔軟性を提供し、文字列データを扱う開発者にとって不可欠なメソッドです。 IronPDFの無料トライアルから始めて、$999から始まるIronPDFライセンスオプションを探ってください。

Jacob Mellor, Chief Technology Officer @ Team Iron
Chief Technology Officer

Jacob Mellor is Chief Technology Officer at Iron Software and a visionary engineer pioneering C# PDF technology. As the original developer behind Iron Software's core codebase, he has shaped the company's product architecture since its inception, transforming it alongside CEO Cameron Rimington into a 50+ person company serving NASA, Tesla, and global government agencies.

...
Read More

Related Articles

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

bullet_checkedクレジットカードやアカウントの作成は不要です。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
無料のライブデモを予約する
Booking Badge related to IronPDF Product Demo

世界中の数百万人のエンジニアから信頼されています。

ライセンスはより安く
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。