String.IndexOf Method (Char, Int32, Int32)

July 28, 2014

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)

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.

ExceptionCondition
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 zero. startIndex can range from 0 to the length of the string instance.

This method performs an ordinal (culture-insensitive, case-sensitive) 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.

The following example demonstrates the IndexOf method.


// 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
*/


Windows Phone OS

Supported in: 8.1, 8.0, 7.1, 7.0

Windows Phone

Show:
© 2014 Microsoft