.NETヘルプ IndexOf C#(開発者向けの動作方法) Curtis Chau 更新日:6月 22, 2025 Download IronPDF NuGet Download テキストの検索と置換 テキストと画像のスタンプ Start Free Trial Copy for LLMs Copy for LLMs Copy page as Markdown for LLMs Open in ChatGPT Ask ChatGPT about this page Open in Gemini Ask Gemini about this page Open in Grok Ask Grok about this page Open in Perplexity Ask Perplexity about this page Share Share on Facebook Share on X (Twitter) Share on LinkedIn Copy URL Email article 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); } public static void Main(string[] args) { string str = "Hello, world!"; int index = str.IndexOf('o'); Console.WriteLine("The index of 'o' is: " + index); } Public Shared Sub Main(ByVal args() As String) Dim str As String = "Hello, world!" Dim index As Integer = str.IndexOf("o"c) Console.WriteLine("The index of 'o' is: " & index) End Sub $vbLabelText $csharpLabel この例に続いて、スニペットは文字 'o' の最初の出現を特定し、その位置を示す以下の出力を表示します。 出力は次のとおりです: 'o' のインデックスは:4 インデックスがゼロベースであることに注意してください。つまり、最初の文字はインデックス 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); 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); Dim value As String = "Brown fox jumps over" Dim startIndex As Integer = value.IndexOf("o"c) + 1 Dim index As Integer = value.IndexOf("o"c, startIndex) Console.WriteLine("The index of the second 'o' is: " & index) $vbLabelText $csharpLabel まず、コードは 'o' の最初の出現を見つけ、その後最初に見つかったインデックスの直後から次の 'o' を検索します。 コードを実行すると、コンソール出力は次のとおりです: 2 番目の 'o' のインデックスは 7 開始インデックスとカウントを使用した検索 より詳細な調査には、開始インデックスとカウントの両方を指定することが含まれ、次の例で示すように、検索を効率化します。 これにより、文字列内の特定の範囲に検索が制限され、パフォーマンスと精度が最適化されます。 方法は次のとおりです: 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); 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); Dim sample As String = "Sample text for testing" Dim startindex As Integer = 7 Dim count As Integer = 10 Dim result As Integer = sample.IndexOf("text", startindex, count) Console.WriteLine("Index of 'text': " & result) $vbLabelText $csharpLabel このスニペットは、指定範囲内で「テキスト」を検索し、このメソッドが大きな文字列内での検索領域を絞り込む柔軟性を示します。 このコードを実行すると、コンソール出力は次のとおりです: 'text' のインデックス:7 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); } 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); } IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel このコードを実行すると、コンソール出力は次のとおりです: 文字が見つかりません。 空の文字列の扱い もう一つの特別なケースは、検索文字列またはターゲット文字列が空である場合です。 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."); } 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."); } Dim data As String = "Case-Insensitive Search Example" Dim indexInsensitive As Integer = data.IndexOf("search", StringComparison.OrdinalIgnoreCase) If indexInsensitive >= 0 Then Console.WriteLine("Substring found at index: " & indexInsensitive) Else Console.WriteLine("Substring not found.") End If $vbLabelText $csharpLabel このコードスニペットは、大文字小文字の違いが文字列内のサブ文字列の検索能力に影響を与えないことを保証する、大文字と小文字の区別をしない検索を行う方法を示します。 IronPDF: C# PDFライブラリー IronPDF は PDF ドキュメントの作成、編集、および操作を C# を使用して促進することを目的とした、.NET フレームワーク用に設計された包括的なライブラリです。 それは、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"); } } 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"); } } Imports IronPdf Friend Class Program Shared Sub Main(ByVal args() As String) Dim renderer = New ChromePdfRenderer() ' 1. Convert HTML String to PDF Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>" Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent) pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf") ' 2. Convert HTML File to PDF Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath) pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf") ' 3. Convert URL to PDF Dim url = "http://ironpdf.com" ' Specify the URL Dim pdfFromUrl = renderer.RenderUrlAsPdf(url) pdfFromUrl.SaveAs("URLToPDF.pdf") End Sub End Class $vbLabelText $csharpLabel コード例 この例を使用するために、プロジェクトに IronPDF がインストールされていることを確認してください。 そうでない場合は、次のコマンドで NuGet パッケージマネージャを通じて簡単に追加できます: 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."); } } } 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."); } } } Imports IronPdf Imports System Friend Class Program Shared Sub Main(ByVal args() As String) ' Create an instance of the IronPDF PDF document reader Dim pdfDocument = PdfDocument.FromFile("path/to/your/document.pdf") ' Extract all text from the PDF document Dim allText = pdfDocument.ExtractAllText() ' The text you want to search for in the PDF document Dim searchText As String = "specific text" ' Use IndexOf to find the position of searchText in the extracted text Dim position As Integer = allText.IndexOf(searchText) If position <> -1 Then 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.") End If End Sub End Class $vbLabelText $csharpLabel このコードスニペットは、PDF を開き、そのテキストコンテンツを抽出し、そのコンテンツ内で特定の文字列を検索するための基本的なフレームワークを提供します。 このコードを実行すると、コンソール出力は次のとおりです: Text found at position: 1046 結論 要約すると、C# における IndexOf メソッドは、文字列内での文字またはサブ文字列を効率的に検索するためのプログラマーのツールキットの必需品です。 さまざまなオーバーロードを通じて、さまざまなテキスト処理タスクを処理するための柔軟性を提供し、文字列データを扱う開発者にとって不可欠なメソッドです。 Start with a free trial of IronPDF and then explore IronPDF licensing options starting at $799. よくある質問 C#で文字列操作のためにIndexOfメソッドをどのように使用できますか? C#のIndexOfメソッドは、特定の文字またはサブ文字列が別の文字列内のどこにあるかを見つけるために使用されます。指定された値の最初の出現のゼロベースのインデックスを返し、文字列操作タスクに欠かせないものとなっています。 C#のIndexOfメソッドの異なるオーバーロードは何ですか? C#のIndexOfメソッドには、単一の文字を検索するIndexOf(char value)、サブ文字列用のIndexOf(string value)、および開始インデックスとカウントを指定するための高度な検索要件のための追加オーバーロードがあります。 C#でIndexOfメソッドを使用して大文字と小文字を無視した検索を行うことはできますか? はい、IndexOfメソッドにStringComparison.OrdinalIgnoreCaseパラメーターを使用すると、大文字と小文字の違いが結果に影響しないように、大文字と小文字を無視した検索を実行できます。 IndexOfメソッドはC#で非存在の要素をどのように処理しますか? 文字またはサブ文字列が見つからない場合、IndexOfメソッドは-1を返します。検索値が文字列に存在しない場合の処理のためにこの結果を確認することが重要です。 IronPDFはC#のIndexOfメソッドとどのように統合されてPDFのテキスト抽出を行いますか? IronPDFを使用すると、PDFドキュメントからテキストを抽出できます。抽出された後、IndexOfメソッドを使用してテキスト内で特定のサブ文字列を検索し、さらに操作や分析を促進します。 C#でIndexOfを使用する際のパフォーマンスの考慮事項は何ですか? IndexOfは、マッチが見つかるか検索範囲の終わりに達するまで各文字を確認するリニア検索を実行します。開始インデックスとカウントパラメーターの最適化は、大量の文字列でも特にパフォーマンスを向上させることができます。 IndexOfメソッドはC#で空文字列をどのように処理しますか? 空の文字列を任意の文字列で検索する場合、IndexOfは0を返し、文字列の開始を示します。逆に、任意の非空のサブ文字列で空の文字列を検索する場合は-1を返します。 C#でIndexOfを使用する際の文化的または言語的な要件をどのように考慮できますか? IndexOfはUnicode文字に対して結果に影響を与える文化的ルールを尊重します。特定の文化的ニーズには、CultureInfoオブジェクトを受け取るオーバーロードを使用してメソッドの動作を調整します。 IndexOfメソッドで開始インデックスとカウントを指定することの重要性は何ですか? IndexOfメソッドで開始インデックスとカウントを指定すると、文字列の特定のセクションに検索を制限でき、検索効率を向上させ、よりターゲットを絞ったサブ文字列検索を可能にします。 Curtis Chau 今すぐエンジニアリングチームとチャット テクニカルライター Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。 関連する記事 更新日 9月 4, 2025 RandomNumberGenerator C# RandomNumberGenerator C#クラスを使用すると、PDF生成および編集プロジェクトを次のレベルに引き上げることができます 詳しく読む 更新日 9月 4, 2025 C# String Equals(開発者向けの仕組み) 強力なPDFライブラリであるIronPDFと組み合わせることで、switchパターンマッチングは、ドキュメント処理のためのよりスマートでクリーンなロジックを構築できます 詳しく読む 更新日 8月 5, 2025 C# Switch Pattern Matching(開発者向けの仕組み) 強力なPDFライブラリであるIronPDFと組み合わせることで、switchパターンマッチングは、ドキュメント処理のためのよりスマートでクリーンなロジックを構築できます 詳しく読む C# URL Encode(開発者向けの動作方法)C# Groupby(開発者向けの動...
更新日 9月 4, 2025 RandomNumberGenerator C# RandomNumberGenerator C#クラスを使用すると、PDF生成および編集プロジェクトを次のレベルに引き上げることができます 詳しく読む
更新日 9月 4, 2025 C# String Equals(開発者向けの仕組み) 強力なPDFライブラリであるIronPDFと組み合わせることで、switchパターンマッチングは、ドキュメント処理のためのよりスマートでクリーンなロジックを構築できます 詳しく読む
更新日 8月 5, 2025 C# Switch Pattern Matching(開発者向けの仕組み) 強力なPDFライブラリであるIronPDFと組み合わせることで、switchパターンマッチングは、ドキュメント処理のためのよりスマートでクリーンなロジックを構築できます 詳しく読む