IndexOf Method (String, StringComparison)

String.IndexOf Method (String, StringComparison)

[ 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 string in the current String object. A parameter specifies the type of search to use for the specified string.

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

'Declaration
Public Function IndexOf ( _
	value As String, _
	comparisonType As StringComparison _
) As Integer

Parameters

value
Type: System.String
The string to seek.
comparisonType
Type: System.StringComparison
One of the enumeration values that specifies the rules for the search.

Return Value

Type: System.Int32
The zero-based index position of the value parameter if that string is found, or -1 if it is not. If value is Empty, the return value is 0.

ExceptionCondition
ArgumentNullException

value is Nothing.

ArgumentException

comparisonType is not a valid System.StringComparison value.

Index numbering starts from zero.

The comparisonType parameter specifies to search for the value parameter using the current or invariant culture, using a case-sensitive or case-insensitive search, and using word or ordinal comparison rules.

The following code example demonstrates three overloads of the IndexOf method that find the first occurrence of a string within another string using different values of the StringComparison enumeration.


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

Imports System.Threading
Imports System.Globalization

Class Example
   Public Shared Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock)
      Dim intro As String = "Find the first occurrence of a character using different " & _
                            "values of StringComparison."
      Dim resultFmt As String = "Comparison: {0,-28} Location: {1,3}"

      ' Define a string to search for.
      ' U+00c5 = LATIN CAPITAL LETTER A WITH RING ABOVE
      Dim CapitalAWithRing As String = "Å"

      ' 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).
      Dim cat As String = "A Cheshire c" & "å" & "t"

      Dim loc As Integer = 0
      Dim scValues As StringComparison() = { _
                      StringComparison.CurrentCulture, _
                      StringComparison.CurrentCultureIgnoreCase, _
                      StringComparison.InvariantCulture, _
                      StringComparison.InvariantCultureIgnoreCase, _
                      StringComparison.Ordinal, _
                      StringComparison.OrdinalIgnoreCase}
      Dim sc As StringComparison

      ' Display an introduction.
      outputBlock.Text &= intro & vbCrLf

      ' 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) & vbCrLf

      ' 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) & vbCrLf
      outputBlock.Text &= vbCrLf

      ' 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." & vbCrLf
      For Each sc In scValues
         loc = cat.IndexOf(CapitalAWithRing, 0, cat.Length, sc)
         outputBlock.Text &= String.Format(resultFmt, sc, loc) & vbCrLf
      Next sc

      ' Search using different values of StringComparison. Specify the 
      ' start index. 

      outputBlock.Text &= vbCrLf & "Part 2: Start index is specified." & vbCrLf
      For Each sc In scValues
         loc = cat.IndexOf(CapitalAWithRing, 0, sc)
         outputBlock.Text &= String.Format(resultFmt, sc, loc) & vbCrLf
      Next sc

      ' Search using different values of StringComparison. 

      outputBlock.Text &= vbCrLf & "Part 3: Neither start index nor count is specified." & vbCrLf
      For Each sc In scValues
         loc = cat.IndexOf(CapitalAWithRing, sc)
         outputBlock.Text &= String.Format(resultFmt, sc, loc) & vbCrLf
      Next sc

   End Sub 'Main
End Class 'Sample

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

Supported in: 8.1, 8.0, 7.1, 7.0

Windows Phone

Show:
© 2016 Microsoft