String.IndexOf Method (Char, Int32, Int32)
Reports the zero-based index of the first occurrence of the specified character in this instance. The search starts at a specified character position and examines a specified number of character positions.
Namespace: System
Assembly: mscorlib (in mscorlib.dll)
Parameters
- value
- Type: System.Char
A Unicode character to seek.
- startIndex
- Type: System.Int32
The search starting position.
- count
- Type: System.Int32
The number of character positions to examine.
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 | count or startIndex is negative. -or- startIndex is greater than the length of this string. -or- count is greater than the length of this string minus startIndex. |
The search begins at startIndex and continues to startIndex + count -1. The character at startIndex + count is not included in the search.
Index numbering starts from 0 (zero). The startIndex parameter can range from 0 to the length of the string instance.
This method performs an ordinal (culture-insensitive) 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.
// Example for the String.IndexOf( char, int, int ) method. using System; class IndexOfCII { public static void Main() { string br1 = "0----+----1----+----2----+----3----+----" + "4----+----5----+----6----+----7"; string br2 = "0123456789012345678901234567890123456789" + "0123456789012345678901234567890"; string str = "ABCDEFGHI abcdefghi ABCDEFGHI abcdefghi " + "ABCDEFGHI abcdefghi ABCDEFGHI"; Console.WriteLine( "This example of String.IndexOf( char, int, int )\n" + "generates the following output." ); Console.WriteLine( "{0}{1}{0}{2}{0}{3}{0}", Environment.NewLine, br1, br2, str ); FindAllChar( 'A', str ); FindAllChar( 'a', str ); FindAllChar( 'I', str ); FindAllChar( 'i', str ); FindAllChar( '@', str ); FindAllChar( ' ', str ); } static void FindAllChar( Char target, String searched ) { Console.Write( "The character '{0}' occurs at position(s): ", target ); int startIndex = -1; int hitCount = 0; // Search for all occurrences of the target. while( true ) { startIndex = searched.IndexOf( target, startIndex + 1, searched.Length - startIndex - 1 ); // Exit the loop if the target is not found. if( startIndex < 0 ) break; Console.Write( "{0}, ", startIndex ); hitCount++; } Console.WriteLine( "occurrences: {0}", hitCount ); } } /* This example of String.IndexOf( char, int, int ) generates the following output. 0----+----1----+----2----+----3----+----4----+----5----+----6----+----7 01234567890123456789012345678901234567890123456789012345678901234567890 ABCDEFGHI abcdefghi ABCDEFGHI abcdefghi ABCDEFGHI abcdefghi ABCDEFGHI The character 'A' occurs at position(s): 0, 20, 40, 60, occurrences: 4 The character 'a' occurs at position(s): 10, 30, 50, occurrences: 3 The character 'I' occurs at position(s): 8, 28, 48, 68, occurrences: 4 The character 'i' occurs at position(s): 18, 38, 58, occurrences: 3 The character '@' occurs at position(s): occurrences: 0 The character ' ' occurs at position(s): 9, 19, 29, 39, 49, 59, occurrences: 6 */
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.