String.IndexOf Method (Char, 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 Unicode character in this string. The search starts at a specified character position.

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)

Syntax

'Declaration
Public Function IndexOf ( _
    value As Char, _
    startIndex As Integer _
) As Integer
public int IndexOf(
    char value,
    int startIndex
)

Parameters

  • startIndex
    Type: System.Int32
    The search starting position.

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

startIndex is less than zero or greater than the length of this string instance.

Remarks

Index numbering starts from zero. startIndex can range from 0 to one less than the length of the string instance.

The search ranges from startIndex to the end of the string.

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 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.

Examples

The following code example demonstrates the IndexOf method.

' Sample for String.IndexOf(Char, Int32)

Module Example
   Public Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock)

      Dim br1 As String = "0----+----1----+----2----+----3----+----4----+----5----+----6----+-"
      Dim br2 As String = "0123456789012345678901234567890123456789012345678901234567890123456"
      Dim str As String = "Now is the time for all good men to come to the aid of their party."
      Dim start As Integer
      Dim at As Integer

      outputBlock.Text &= vbCrLf
      outputBlock.Text &= String.Format("All occurrences of 't' from position 0 to {0}.", str.Length - 1) & vbCrLf
      outputBlock.Text &= String.Format("{1}{0}{2}{0}{3}{0}", vbCrLf, br1, br2, str) & vbCrLf
      outputBlock.Text &= "The letter 't' occurs at position(s): "

      at = 0
      start = 0
      While start < str.Length AndAlso at > -1
         at = str.IndexOf("t"c, start)
         If at = -1 Then
            Exit While
         End If
         outputBlock.Text &= String.Format("{0} ", at)
         start = at + 1
      End While
      outputBlock.Text &= vbCrLf
   End Sub
End Module
'
'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
'
'
// 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

*/

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.