MSDN ライブラリ
情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

String.IndexOf メソッド (String, Int32, Int32, StringComparison)

2013/12/12

指定した文字列が現在の String オブジェクト内で最初に見つかった位置の 0 から始まるインデックスをレポートします。パラメーターは、現在の文字列での検索位置、現在の文字列で検索する文字の数、および指定した文字列に使用する検索の種類を指定します。

Namespace:  System
アセンブリ:  mscorlib (mscorlib.dll 内)

public int IndexOf(
	string value,
	int startIndex,
	int count,
	StringComparison comparisonType
)

パラメーター

value
型: System.String
シークする文字列。
startIndex
型: System.Int32
検索が開始される位置。
count
型: System.Int32
検査する文字位置の数。
comparisonType
型: System.StringComparison
検索の規則を指定する列挙値の 1 つ。

戻り値

型: System.Int32
その文字列が見つかった場合は、value パラメーターの 0 から始まるインデックスでの位置。見つからなかった場合は -1。valueEmpty の場合、戻り値は startIndex です。

例外条件
ArgumentNullException

valuenull です。

ArgumentOutOfRangeException

count または startIndex が負の値です。

または

startIndex がこのインスタンスの長さを超えています。

または

count が、startIndex を引いたこの文字列の長さを超えています。

ArgumentException

comparisonType が有効な System.StringComparison 値ではありません。

インデックスの番号付けは 0 から始まります。startIndex には、0 から文字列インスタンスの長さまでの範囲内の値を指定できます。

startIndex から startIndex + count -1 番目の位置まで検索が実行されました。startIndex + count の位置に文字は検出されませんでした。

comparisonType パラメーターは、現在のカルチャまたはインバリアント カルチャを使用し、大文字と小文字を区別する検索または区別しない検索を使用し、比較規則に単語または序数を使用して、value パラメーターが検索されるように指定します。

StringComparison 列挙体の異なる値を使用して、ある文字列が別の文字列内で最初に出現する位置を検索する IndexOf メソッドの 3 つのオーバーロードのコード例を次に示します。


// This code example demonstrates the 
// System.String.IndexOf(String, ..., StringComparison) methods.

using System;
using System.Threading;
using System.Globalization;

class Example
{
   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      string intro = "Find the first occurrence of a character using different " +
                     "values of StringComparison.";
      string resultFmt = "Comparison: {0,-28} Location: {1,3}";

      // Define a string to search for.
      // U+00c5 = LATIN CAPITAL LETTER A WITH RING ABOVE
      string CapitalAWithRing = "\u00c5";

      // Define a string to search. 
      // The result of combining the characters LATIN SMALL LETTER A and COMBINING 
      // RING ABOVE (U+0061, U+030a) is linguistically equivalent to the character 
      // LATIN SMALL LETTER A WITH RING ABOVE (U+00e5).
      string cat = "A Cheshire c" + "\u0061\u030a" + "t";

      int loc = 0;
      StringComparison[] scValues = {
        StringComparison.CurrentCulture,
        StringComparison.CurrentCultureIgnoreCase,
        StringComparison.InvariantCulture,
        StringComparison.InvariantCultureIgnoreCase,
        StringComparison.Ordinal,
        StringComparison.OrdinalIgnoreCase };

      // Display an introduction.
      outputBlock.Text += intro + "\n";

      // Display the current culture because culture affects the result. For example, 
      // try this code example with the "sv-SE" (Swedish-Sweden) culture.

      Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
      outputBlock.Text += String.Format("The current culture is \"{0}\" - {1}.",
                         Thread.CurrentThread.CurrentCulture.Name,
                         Thread.CurrentThread.CurrentCulture.DisplayName) + "\n";

      // Display the string to search for and the string to search.
      outputBlock.Text += String.Format("Search for the string \"{0}\" in the string \"{1}\"",
                         CapitalAWithRing, cat) + "\n";
      outputBlock.Text += "\n";

      // Note that in each of the following searches, we look for 
      // LATIN CAPITAL LETTER A WITH RING ABOVE in a string that contains 
      // LATIN SMALL LETTER A WITH RING ABOVE. A result value of -1 indicates 
      // the string was not found.
      // Search using different values of StringComparison. Specify the start 
      // index and count. 

      outputBlock.Text += "Part 1: Start index and count are specified." + "\n";
      foreach (StringComparison sc in scValues)
      {
         loc = cat.IndexOf(CapitalAWithRing, 0, cat.Length, sc);
         outputBlock.Text += String.Format(resultFmt, sc, loc) + "\n";
      }

      // Search using different values of StringComparison. Specify the 
      // start index. 
      outputBlock.Text += "\nPart 2: Start index is specified." + "\n";
      foreach (StringComparison sc in scValues)
      {
         loc = cat.IndexOf(CapitalAWithRing, 0, sc);
         outputBlock.Text += String.Format(resultFmt, sc, loc) + "\n";
      }

      // Search using different values of StringComparison. 
      outputBlock.Text += "\nPart 3: Neither start index nor count is specified." + "\n";
      foreach (StringComparison sc in scValues)
      {
         loc = cat.IndexOf(CapitalAWithRing, sc);
         outputBlock.Text += String.Format(resultFmt, sc, loc) + "\n";
      }
   }
}

/*
Note: This code example was executed on a console whose user interface 
culture is "en-US" (English-United States).

This code example produces the following results:

Find the first occurrence of a character using different values of StringComparison.
The current culture is "en-US" - English (United States).
Search for the string "Å" in the string "A Cheshire ca°t"

Part 1: Start index and count are specified.
Comparison: CurrentCulture               Location:  -1
Comparison: CurrentCultureIgnoreCase     Location:  12
Comparison: InvariantCulture             Location:  -1
Comparison: InvariantCultureIgnoreCase   Location:  12
Comparison: Ordinal                      Location:  -1
Comparison: OrdinalIgnoreCase            Location:  -1

Part 2: Start index is specified.
Comparison: CurrentCulture               Location:  -1
Comparison: CurrentCultureIgnoreCase     Location:  12
Comparison: InvariantCulture             Location:  -1
Comparison: InvariantCultureIgnoreCase   Location:  12
Comparison: Ordinal                      Location:  -1
Comparison: OrdinalIgnoreCase            Location:  -1

Part 3: Neither start index nor count is specified.
Comparison: CurrentCulture               Location:  -1
Comparison: CurrentCultureIgnoreCase     Location:  12
Comparison: InvariantCulture             Location:  -1
Comparison: InvariantCultureIgnoreCase   Location:  12
Comparison: Ordinal                      Location:  -1
Comparison: OrdinalIgnoreCase            Location:  -1

*/


Windows Phone OS

サポート: 8.0, 7.1, 7.0

表示:
© 2016 Microsoft