String.IndexOf Method (Char, Int32)
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
Reports the zero-based index of the first occurrence of the specified Unicode character in this string. The search starts at a specified character position.
Assembly: mscorlib (in mscorlib.dll)
Parameters
- value
- Type: System.Char
A Unicode character to seek.
- startIndex
- Type: System.Int32
The search starting position.
Return Value
Type: System.Int32The zero-based index position of value if that character is found, or -1 if it is not.
| Exception | Condition |
|---|---|
| ArgumentOutOfRangeException | startIndex is less than zero or greater than the length of this string instance. |
Index numbering starts from zero. startIndex can range from 0 to the length of the string instance. If startIndex equals the length of the string instance, the method returns -1.
The search ranges from startIndex to the end of the string.
This method performs an ordinal (culture-insensitive, case-sensitive) search, where a character is considered equivalent to another character only if their Unicode scalar values are the same. To perform a culture-sensitive search, use the CompareInfo.IndexOf method, where a Unicode scalar value representing a precomposed character, such as the ligature 'Æ' (U+00C6), might be considered equivalent to any occurrence of the character's components in the correct sequence, such as "AE" (U+0041, U+0045), depending on the culture.
The following example demonstrates the IndexOf method.
// Sample for String.IndexOf(Char, Int32) using System; class Example { public static void Demo(System.Windows.Controls.TextBlock outputBlock) { string br1 = "0----+----1----+----2----+----3----+----4----+----5----+----6----+-"; string br2 = "0123456789012345678901234567890123456789012345678901234567890123456"; string str = "Now is the time for all good men to come to the aid of their party."; int start; int at; outputBlock.Text += "\n"; outputBlock.Text += String.Format("All occurrences of 't' from position 0 to {0}.", str.Length - 1) + "\n"; outputBlock.Text += String.Format("{1}{0}{2}{0}{3}{0}", "\n", br1, br2, str) + "\n"; outputBlock.Text += "The letter 't' occurs at position(s): "; at = 0; start = 0; while ((start < str.Length) && (at > -1)) { at = str.IndexOf('t', start); if (at == -1) break; outputBlock.Text += String.Format("{0} ", at); start = at + 1; } outputBlock.Text += "\n"; } } /* This example produces the following results: All occurrences of 't' from position 0 to 66. 0----+----1----+----2----+----3----+----4----+----5----+----6----+- 0123456789012345678901234567890123456789012345678901234567890123456 Now is the time for all good men to come to the aid of their party. The letter 't' occurs at position(s): 7 11 33 41 44 55 64 */