String.IndexOf Method (Char, Int32, Int32)
Microsoft Silverlight will reach end of support after October 2021. Learn more.
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)
Syntax
'Declaration
<SecuritySafeCriticalAttribute> _
Public Function IndexOf ( _
value As Char, _
startIndex As Integer, _
count As Integer _
) As Integer
[SecuritySafeCriticalAttribute]
public int IndexOf(
char value,
int startIndex,
int count
)
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.Int32
The zero-based index position of value if that character is found, or -1 if it is not.
Exceptions
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 |
Remarks
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 zero. startIndex can range from 0 to one less than the length of the string instance.
The search for value is case-sensitive.
This method performs an ordinal (culture-insensitive) search, where a character is considered equivalent to another character only if their Unicode scalar value 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.
Examples
The following code example demonstrates the IndexOf method.
' Example for the String.IndexOf( Char, Integer, Integer ) method.
Module Example
Public Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock)
Dim br1 As String = _
"0----+----1----+----2----+----3----+----" & _
"4----+----5----+----6----+----7"
Dim br2 As String = _
"0123456789012345678901234567890123456789" & _
"0123456789012345678901234567890"
Dim str As String = _
"ABCDEFGHI abcdefghi ABCDEFGHI abcdefghi " & _
"ABCDEFGHI abcdefghi ABCDEFGHI"
outputBlock.Text += _
"This example of String.IndexOf( Char, Integer, Integer )" & _
vbCrLf & "generates the following output." & vbCrLf
outputBlock.Text += String.Format( _
"{0}{1}{0}{2}{0}{3}{0}", _
Environment.NewLine, br1, br2, str) & vbCrLf
FindAllChar(outputBlock, "A"c, str)
FindAllChar(outputBlock, "a"c, str)
FindAllChar(outputBlock, "I"c, str)
FindAllChar(outputBlock, "i"c, str)
FindAllChar(outputBlock, "@"c, str)
FindAllChar(outputBlock, " "c, str)
End Sub 'Main
Sub FindAllChar(ByVal outputBlock As System.Windows.Controls.TextBlock, ByVal target As Char, ByVal searched As String)
outputBlock.Text += String.Format( _
"The character ""{0}"" occurs at position(s): ", target)
Dim startIndex As Integer = -1
Dim hitCount As Integer = 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 Then
Exit While
End If
outputBlock.Text += String.Format("{0}, ", startIndex)
hitCount += 1
End While
outputBlock.Text += String.Format("occurrences: {0}", hitCount) & vbCrLf
End Sub 'FindAllChar
End Module 'IndexOfCII
' This example of String.IndexOf( Char, Integer, Integer )
' 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
// Example for the String.IndexOf( char, int, int ) method.
using System;
class Example
{
public static void Demo(System.Windows.Controls.TextBlock outputBlock)
{
string br1 =
"0----+----1----+----2----+----3----+----" +
"4----+----5----+----6----+----7";
string br2 =
"0123456789012345678901234567890123456789" +
"0123456789012345678901234567890";
string str =
"ABCDEFGHI abcdefghi ABCDEFGHI abcdefghi " +
"ABCDEFGHI abcdefghi ABCDEFGHI";
outputBlock.Text +=
"This example of String.IndexOf( char, int, int )\n" +
"generates the following output." + "\n";
outputBlock.Text += String.Format(
"{0}{1}{0}{2}{0}{3}{0}",
Environment.NewLine, br1, br2, str) + "\n";
FindAllChar(outputBlock, 'A', str);
FindAllChar(outputBlock, 'a', str);
FindAllChar(outputBlock, 'I', str);
FindAllChar(outputBlock, 'i', str);
FindAllChar(outputBlock, '@', str);
FindAllChar(outputBlock, ' ', str);
}
static void FindAllChar(System.Windows.Controls.TextBlock outputBlock, Char target, String searched)
{
outputBlock.Text += String.Format(
"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;
outputBlock.Text += String.Format("{0}, ", startIndex);
hitCount++;
}
outputBlock.Text += String.Format("occurrences: {0}", hitCount) + "\n";
}
}
/*
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
*/
Version Information
Silverlight
Supported in: 5, 4, 3
Silverlight for Windows Phone
Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0
XNA Framework
Supported in: Xbox 360, Windows Phone OS 7.0
Platforms
For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.
See Also