String.Compareメソッドとは異なり、String.IndexOfなど部分文字列の探索と一致を検証するメソッドではStringComparisonを引数にとるオーバーロードは用意されていますが、CompareOptionsをとるオーバーロードは用意されていません。 CompareOptionsを使ってこれらの処理を行うには、CompareInfoクラスのメソッドを使う必要があります。

部分文字列の探索・一致を行うメソッド
Stringクラスのメソッド 代用できるCompareInfoクラスのメソッド
String.IndexOfメソッド CompareInfo.IndexOfメソッド
String.LastIndexOfメソッド CompareInfo.LastIndexOfメソッド
String.StartsWithメソッド CompareInfo.IsPrefixメソッド
String.EndsWithメソッド CompareInfo.IsSuffixメソッド
String.Equalsメソッド (なし)

なお、これらのメソッドでCompareOptions.StringSortを指定することはできません。 指定した場合はArgumentExceptionがスローされます。

次の例は、CompareInfoクラスの各メソッドを使った部分文字列の探索と一致の例です。

CompareOptionsを指定してIndexOf・LastIndexOf・StartsWith・EndsWithに相当する処理を行う
using System;
using System.Globalization;

class Sample {
  static void Main()
  {
    var s = "かごめかごめ かごのなかのとりは いついつでやる";
    var ci = CultureInfo.InvariantCulture.CompareInfo;

    Console.WriteLine(s);

    Console.WriteLine();
    Console.WriteLine("IndexOf(とり、トリ)");
    Console.WriteLine(s.IndexOf("とり"));
    Console.WriteLine(s.IndexOf("トリ"));
    Console.WriteLine(ci.IndexOf(s, "とり"));
    Console.WriteLine(ci.IndexOf(s, "とり", CompareOptions.None));
    Console.WriteLine(ci.IndexOf(s, "トリ"));
    Console.WriteLine(ci.IndexOf(s, "トリ", CompareOptions.IgnoreKanaType));

    Console.WriteLine();
    Console.WriteLine("LastIndexOf(かご、カゴ)");
    Console.WriteLine(s.LastIndexOf("かご"));
    Console.WriteLine(s.LastIndexOf("カゴ"));
    Console.WriteLine(ci.LastIndexOf(s, "かご"));
    Console.WriteLine(ci.LastIndexOf(s, "カゴ"));
    Console.WriteLine(ci.LastIndexOf(s, "カゴ", CompareOptions.IgnoreKanaType | CompareOptions.IgnoreWidth));

    Console.WriteLine();
    Console.WriteLine("IsPrefix(かごめ、かこめ)");
    Console.WriteLine(s.StartsWith("かごめ"));
    Console.WriteLine(s.StartsWith("かこめ"));
    Console.WriteLine(ci.IsPrefix(s, "かごめ"));
    Console.WriteLine(ci.IsPrefix(s, "かこめ"));
    Console.WriteLine(ci.IsPrefix(s, "かこめ", CompareOptions.IgnoreNonSpace));

    Console.WriteLine();
    Console.WriteLine("IsSuffix(でやる、デヤル)");
    Console.WriteLine(s.EndsWith("でやる"));
    Console.WriteLine(s.EndsWith("デヤル"));
    Console.WriteLine(ci.IsSuffix(s, "でやる"));
    Console.WriteLine(ci.IsSuffix(s, "デヤル"));
    Console.WriteLine(ci.IsSuffix(s, "デヤル", CompareOptions.IgnoreKanaType));
  }
}
実行結果
かごめかごめ かごのなかのとりは いついつでやる

IndexOf(とり、トリ)
13
-1
13
13
-1
13

LastIndexOf(かご、カゴ)
7
-1
7
-1
7

IsPrefix(かごめ、かこめ)
True
False
True
False
True

IsSuffix(でやる、デヤル)
True
False
True
False
True