Freigeben über


String.IndexOf Methode

Definition

Meldet den nullbasierten Index des ersten Vorkommens eines angegebenen Unicode-Zeichens oder einer angegebenen Zeichenfolge innerhalb dieser Instanz. Die Methode gibt -1 zurück, wenn das Zeichen oder die Zeichenfolge in dieser Instanz nicht gefunden wird.

Überlädt

Name Beschreibung
IndexOf(Char, Int32, StringComparison)
IndexOf(Rune, Int32, Int32, StringComparison)
IndexOf(String, Int32, Int32, StringComparison)

Meldet den nullbasierten Index des ersten Vorkommens der angegebenen Zeichenfolge im aktuellen String Objekt. Parameter geben die Anfangssuchposition in der aktuellen Zeichenfolge, die Anzahl der zu durchsuchenden Zeichen in der aktuellen Zeichenfolge und den Suchtyp an, der für die angegebene Zeichenfolge verwendet werden soll.

IndexOf(Char, Int32, Int32, StringComparison)
IndexOf(Rune, Int32, StringComparison)
IndexOf(Rune, Int32, Int32)
IndexOf(String, Int32, StringComparison)

Meldet den nullbasierten Index des ersten Vorkommens der angegebenen Zeichenfolge im aktuellen String Objekt. Parameter geben die Startsuchposition in der aktuellen Zeichenfolge und den Suchtyp an, der für die angegebene Zeichenfolge verwendet werden soll.

IndexOf(String, Int32, Int32)

Meldet den nullbasierten Index des ersten Vorkommens der angegebenen Zeichenfolge in dieser Instanz. Die Suche beginnt an einer angegebenen Zeichenposition und untersucht eine bestimmte Anzahl von Zeichenpositionen.

IndexOf(Char, Int32, Int32)

Meldet den nullbasierten Index des ersten Vorkommens des angegebenen Zeichens in dieser Instanz. Die Suche beginnt an einer angegebenen Zeichenposition und untersucht eine bestimmte Anzahl von Zeichenpositionen.

IndexOf(Char)

Meldet den nullbasierten Index des ersten Vorkommens des angegebenen Unicode-Zeichens in dieser Zeichenfolge.

IndexOf(Rune, Int32)
IndexOf(String, StringComparison)

Meldet den nullbasierten Index des ersten Vorkommens der angegebenen Zeichenfolge im aktuellen String Objekt. Ein Parameter gibt den Suchtyp an, der für die angegebene Zeichenfolge verwendet werden soll.

IndexOf(String, Int32)

Meldet den nullbasierten Index des ersten Vorkommens der angegebenen Zeichenfolge in dieser Instanz. Die Suche beginnt an einer angegebenen Zeichenposition.

IndexOf(Char, StringComparison)

Meldet den nullbasierten Index des ersten Vorkommens des angegebenen Unicode-Zeichens in dieser Zeichenfolge. Ein Parameter gibt den Suchtyp an, der für das angegebene Zeichen verwendet werden soll.

IndexOf(Char, Int32)

Meldet den nullbasierten Index des ersten Vorkommens des angegebenen Unicode-Zeichens in dieser Zeichenfolge. Die Suche beginnt an einer angegebenen Zeichenposition.

IndexOf(Rune)
IndexOf(String)

Meldet den nullbasierten Index des ersten Vorkommens der angegebenen Zeichenfolge in dieser Instanz.

IndexOf(Rune, StringComparison)

IndexOf(Char, Int32, StringComparison)

public:
 int IndexOf(char value, int startIndex, StringComparison comparisonType);
public int IndexOf(char value, int startIndex, StringComparison comparisonType);
member this.IndexOf : char * int * StringComparison -> int
Public Function IndexOf (value As Char, startIndex As Integer, comparisonType As StringComparison) As Integer

Parameter

value
Char
startIndex
Int32
comparisonType
StringComparison

Gibt zurück

Gilt für:

IndexOf(Rune, Int32, Int32, StringComparison)

public:
 int IndexOf(System::Text::Rune value, int startIndex, int count, StringComparison comparisonType);
public int IndexOf(System.Text.Rune value, int startIndex, int count, StringComparison comparisonType);
member this.IndexOf : System.Text.Rune * int * int * StringComparison -> int
Public Function IndexOf (value As Rune, startIndex As Integer, count As Integer, comparisonType As StringComparison) As Integer

Parameter

value
Rune
startIndex
Int32
count
Int32
comparisonType
StringComparison

Gibt zurück

Gilt für:

IndexOf(String, Int32, Int32, StringComparison)

Quelle:
String.Searching.cs
Quelle:
String.Searching.cs
Quelle:
String.Searching.cs
Quelle:
String.Searching.cs

Meldet den nullbasierten Index des ersten Vorkommens der angegebenen Zeichenfolge im aktuellen String Objekt. Parameter geben die Anfangssuchposition in der aktuellen Zeichenfolge, die Anzahl der zu durchsuchenden Zeichen in der aktuellen Zeichenfolge und den Suchtyp an, der für die angegebene Zeichenfolge verwendet werden soll.

public:
 int IndexOf(System::String ^ value, int startIndex, int count, StringComparison comparisonType);
public int IndexOf(string value, int startIndex, int count, StringComparison comparisonType);
member this.IndexOf : string * int * int * StringComparison -> int
Public Function IndexOf (value As String, startIndex As Integer, count As Integer, comparisonType As StringComparison) As Integer

Parameter

value
String

Die Zeichenfolge, die gesucht werden soll.

startIndex
Int32

Die Startposition der Suche.

count
Int32

Die Anzahl der zu überprüfenden Zeichenpositionen.

comparisonType
StringComparison

Einer der Enumerationswerte, die die Regeln für die Suche angibt.

Gibt zurück

Die nullbasierte Indexposition des value Parameters vom Anfang der aktuellen Instanz, wenn diese Zeichenfolge gefunden wird, oder -1, wenn dies nicht der Fall ist. Ist value dies der Wert, lautet startIndexEmptyder Rückgabewert .

Ausnahmen

value ist null.

count oder startIndex ist negativ.

-oder-

startIndex ist größer als die Länge dieser Instanz.

-oder-

count ist größer als die Länge dieser Zeichenfolge minus startIndex.

comparisonType ist kein gültiger StringComparison Wert.

Beispiele

Im folgenden Beispiel werden drei Überladungen der IndexOf Methode veranschaulicht, die das erste Vorkommen einer Zeichenfolge innerhalb einer anderen Zeichenfolge mithilfe verschiedener Werte der StringComparison Enumeration finden.

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

using System;
using System.Threading;
using System.Globalization;

class Sample 
{
    public static void Main() 
    {
    string intro = "Find the first occurrence of a character using different " + 
                   "values of StringComparison.";
    string resultFmt = "Comparison: {0,-28} Location: {1,3}";

// Define a string to search for.
// U+00c5 = LATIN CAPITAL LETTER A WITH RING ABOVE
    string CapitalAWithRing = "\u00c5"; 

// 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).
    string cat = "A Cheshire c" + "\u0061\u030a" + "t";

    int loc = 0;
    StringComparison[] scValues = {
        StringComparison.CurrentCulture,
        StringComparison.CurrentCultureIgnoreCase,
        StringComparison.InvariantCulture,
        StringComparison.InvariantCultureIgnoreCase,
        StringComparison.Ordinal,
        StringComparison.OrdinalIgnoreCase };

// Clear the screen and display an introduction.
    Console.Clear();
    Console.WriteLine(intro);

// 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");
    Console.WriteLine("The current culture is \"{0}\" - {1}.", 
                       Thread.CurrentThread.CurrentCulture.Name,
                       Thread.CurrentThread.CurrentCulture.DisplayName);

// Display the string to search for and the string to search.
    Console.WriteLine("Search for the string \"{0}\" in the string \"{1}\"", 
                       CapitalAWithRing, cat);
    Console.WriteLine();

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

    Console.WriteLine("Part 1: Start index and count are specified.");
    foreach (StringComparison sc in scValues)
        {
        loc = cat.IndexOf(CapitalAWithRing, 0, cat.Length, sc);
        Console.WriteLine(resultFmt, sc, loc);
        }

// Search using different values of StringComparison. Specify the 
// start index. 
    Console.WriteLine("\nPart 2: Start index is specified.");
    foreach (StringComparison sc in scValues)
        {
        loc = cat.IndexOf(CapitalAWithRing, 0, sc);
        Console.WriteLine(resultFmt, sc, loc);
        }

// Search using different values of StringComparison. 
    Console.WriteLine("\nPart 3: Neither start index nor count is specified.");
    foreach (StringComparison sc in scValues)
        {
        loc = cat.IndexOf(CapitalAWithRing, sc);
        Console.WriteLine(resultFmt, sc, loc);
        }
    }
}

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

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

open System
open System.Threading
open System.Globalization

let intro = "Find the first occurrence of a character using different values of StringComparison."

// Define a string to search for.
// U+00c5 = LATIN CAPITAL LETTER A WITH RING ABOVE
let CapitalAWithRing = "\u00c5"

// 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).
let cat = "A Cheshire c" + "\u0061\u030a" + "t"

let scValues = 
    [| StringComparison.CurrentCulture
       StringComparison.CurrentCultureIgnoreCase
       StringComparison.InvariantCulture
       StringComparison.InvariantCultureIgnoreCase
       StringComparison.Ordinal
       StringComparison.OrdinalIgnoreCase |]

// Clear the screen and display an introduction.
Console.Clear()
printfn $"{intro}"

// 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 <- CultureInfo "en-US"
printfn $"The current culture is \"{Thread.CurrentThread.CurrentCulture.Name}\" - {Thread.CurrentThread.CurrentCulture.DisplayName}."

// Display the string to search for and the string to search.
printfn $"Search for the string \"{CapitalAWithRing}\" in the string \"{cat}\"\n"

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

printfn "Part 1: Start index and count are specified."
for sc in scValues do
    let loc = cat.IndexOf(CapitalAWithRing, 0, cat.Length, sc)
    printfn $"Comparison: {sc,-28} Location: {loc,3}"

// Search using different values of StringComparison. Specify the
// start index.
printfn "\nPart 2: Start index is specified."
for sc in scValues do
    let loc = cat.IndexOf(CapitalAWithRing, 0, sc)
    printfn $"Comparison: {sc,-28} Location: {loc,3}"

// Search using different values of StringComparison.
Console.WriteLine("\nPart 3: Neither start index nor count is specified.")
for sc in scValues do
    let loc = cat.IndexOf(CapitalAWithRing, sc)
    Console.WriteLine("Comparison: {0,-28} Location: {1,3}", sc, loc)

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

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

Imports System.Threading
Imports System.Globalization

Class Sample
    Public Shared Sub Main() 
        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
        
        ' Clear the screen and display an introduction.
        Console.Clear()
        Console.WriteLine(intro)
        
        ' 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")
        Console.WriteLine("The current culture is ""{0}"" - {1}.", _
                           Thread.CurrentThread.CurrentCulture.Name, _ 
                           Thread.CurrentThread.CurrentCulture.DisplayName)
        
        ' Display the string to search for and the string to search.
        Console.WriteLine("Search for the string ""{0}"" in the string ""{1}""", _
                           CapitalAWithRing, cat)
        Console.WriteLine()
        
        ' 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.

        Console.WriteLine("Part 1: Start index and count are specified.")
        For Each sc In  scValues
            loc = cat.IndexOf(CapitalAWithRing, 0, cat.Length, sc)
            Console.WriteLine(resultFmt, sc, loc)
        Next sc
        
        ' Search using different values of StringComparison. Specify the 
        ' start index. 

        Console.WriteLine(vbCrLf & "Part 2: Start index is specified.")
        For Each sc In  scValues
            loc = cat.IndexOf(CapitalAWithRing, 0, sc)
            Console.WriteLine(resultFmt, sc, loc)
        Next sc
        
        ' Search using different values of StringComparison. 

        Console.WriteLine(vbCrLf & "Part 3: Neither start index nor count is specified.")
        For Each sc In  scValues
            loc = cat.IndexOf(CapitalAWithRing, sc)
            Console.WriteLine(resultFmt, sc, loc)
        Next sc
    
    End Sub
End Class

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

Hinweise

Die Indexnummerierung beginnt mit 0 (Null). Der startIndex Parameter kann zwischen 0 und der Länge der Zeichenfolgeninstanz liegen.

Die Suche beginnt mit startIndex -1.startIndex + count Das Zeichen bei startIndex + count der Suche ist nicht enthalten.

Der comparisonType Parameter gibt an, nach dem value Parameter mithilfe der aktuellen oder invarianten Kultur zu suchen, wobei bei der Suche nach Groß- oder Kleinschreibung unterschieden wird und Wörter oder Ordnungsvergleichsregeln verwendet werden.

Hinweise für Aufrufer

Zeichensätze enthalten ignorierbare Zeichen, bei denen es sich um Zeichen handelt, die beim Durchführen eines sprachlichen oder kultursensitiven Vergleichs nicht berücksichtigt werden. In einer kultursensiblen Suche (d. h. wenn comparisonType nicht Ordinal oder OrdinalIgnoreCase), wenn value ein ignorierbares Zeichen enthält, entspricht das Ergebnis der Suche mit diesem Zeichen entfernt. Wenn value nur ein oder mehrere ignorierbare Zeichen bestehen, gibt startIndexdie IndexOf(String, Int32, Int32, StringComparison) Methode immer die Zeichenposition zurück, an der die Suche beginnt.

Im folgenden Beispiel wird die IndexOf(String, Int32, Int32, StringComparison) Methode verwendet, um die Position eines weichen Bindestrichs (U+00AD) gefolgt von einem "m" zu finden, der in der dritten bis sechsten Zeichenposition in zwei Zeichenfolgen beginnt. Nur eine der Zeichenfolgen enthält die erforderliche Teilzeichenfolge. Wenn das Beispiel auf .NET Framework 4 oder höher ausgeführt wird, in beiden Fällen, da der weiche Bindestrich ein ignorierbares Zeichen ist, gibt die Methode den Index von "m" in der Zeichenfolge zurück, wenn ein kultursensitiver Vergleich ausgeführt wird. Wenn sie jedoch einen Ordinalvergleich durchführt, findet sie die Teilzeichenfolge nur in der ersten Zeichenfolge. Beachten Sie, dass bei der ersten Zeichenfolge, die den weichen Bindestrich gefolgt von einem "m" enthält, der Index des weichen Bindestrichs nicht zurückgegeben wird, sondern stattdessen den Index des "m" zurückgibt, wenn ein kultursensitiver Vergleich ausgeführt wird. Die Methode gibt den Index des weichen Bindestrichs in der ersten Zeichenfolge nur dann zurück, wenn ein Ordinalvergleich ausgeführt wird.

using System;

public class Example
{
    public static void Main()
    {

        string searchString = "\u00ADm";
        string s1 = "ani\u00ADmal" ;
        string s2 = "animal";

        Console.WriteLine(s1.IndexOf(searchString, 2, 4, StringComparison.CurrentCulture));
        Console.WriteLine(s1.IndexOf(searchString, 2, 4, StringComparison.Ordinal));
        Console.WriteLine(s2.IndexOf(searchString, 2, 4, StringComparison.CurrentCulture));
        Console.WriteLine(s2.IndexOf(searchString, 2, 4, StringComparison.Ordinal));

        // The example displays the following output:
        //       4
        //       3
        //       3
        //       -1
    }
}
open System

let searchString = "\u00ADm"
let s1 = "ani\u00ADmal"
let s2 = "animal"

printfn $"{s1.IndexOf(searchString, 2, 4, StringComparison.CurrentCulture)}"
printfn $"{s1.IndexOf(searchString, 2, 4, StringComparison.Ordinal)}"
printfn $"{s2.IndexOf(searchString, 2, 4, StringComparison.CurrentCulture)}"
printfn $"{s2.IndexOf(searchString, 2, 4, StringComparison.Ordinal)}"

// The example displays the following output:
//       4
//       3
//       3
//       -1
Module Example
   Public Sub Main()
      Dim searchString As String = Chrw(&h00AD) + "m"
      Dim s1 As String = "ani" + ChrW(&h00AD) + "mal"
      Dim s2 As String = "animal"

      Console.WriteLine(s1.IndexOf(searchString, 2, 4, StringComparison.CurrentCulture))
      Console.WriteLine(s1.IndexOf(searchString, 2, 4, StringComparison.Ordinal))
      Console.WriteLine(s2.IndexOf(searchString, 2, 4, StringComparison.CurrentCulture))
      Console.WriteLine(s2.IndexOf(searchString, 2, 4, StringComparison.Ordinal))
   End Sub
End Module
' The example displays the following output:
'       4
'       3
'       3
'       -1

Gilt für:

IndexOf(Char, Int32, Int32, StringComparison)

public:
 int IndexOf(char value, int startIndex, int count, StringComparison comparisonType);
public int IndexOf(char value, int startIndex, int count, StringComparison comparisonType);
member this.IndexOf : char * int * int * StringComparison -> int
Public Function IndexOf (value As Char, startIndex As Integer, count As Integer, comparisonType As StringComparison) As Integer

Parameter

value
Char
startIndex
Int32
count
Int32
comparisonType
StringComparison

Gibt zurück

Gilt für:

IndexOf(Rune, Int32, StringComparison)

public:
 int IndexOf(System::Text::Rune value, int startIndex, StringComparison comparisonType);
public int IndexOf(System.Text.Rune value, int startIndex, StringComparison comparisonType);
member this.IndexOf : System.Text.Rune * int * StringComparison -> int
Public Function IndexOf (value As Rune, startIndex As Integer, comparisonType As StringComparison) As Integer

Parameter

value
Rune
startIndex
Int32
comparisonType
StringComparison

Gibt zurück

Gilt für:

IndexOf(Rune, Int32, Int32)

public:
 int IndexOf(System::Text::Rune value, int startIndex, int count);
public int IndexOf(System.Text.Rune value, int startIndex, int count);
member this.IndexOf : System.Text.Rune * int * int -> int
Public Function IndexOf (value As Rune, startIndex As Integer, count As Integer) As Integer

Parameter

value
Rune
startIndex
Int32
count
Int32

Gibt zurück

Gilt für:

IndexOf(String, Int32, StringComparison)

Quelle:
String.Searching.cs
Quelle:
String.Searching.cs
Quelle:
String.Searching.cs
Quelle:
String.Searching.cs

Meldet den nullbasierten Index des ersten Vorkommens der angegebenen Zeichenfolge im aktuellen String Objekt. Parameter geben die Startsuchposition in der aktuellen Zeichenfolge und den Suchtyp an, der für die angegebene Zeichenfolge verwendet werden soll.

public:
 int IndexOf(System::String ^ value, int startIndex, StringComparison comparisonType);
public int IndexOf(string value, int startIndex, StringComparison comparisonType);
member this.IndexOf : string * int * StringComparison -> int
Public Function IndexOf (value As String, startIndex As Integer, comparisonType As StringComparison) As Integer

Parameter

value
String

Die Zeichenfolge, die gesucht werden soll.

startIndex
Int32

Die Startposition der Suche.

comparisonType
StringComparison

Einer der Enumerationswerte, die die Regeln für die Suche angibt.

Gibt zurück

Die nullbasierte Indexposition des value Parameters vom Anfang der aktuellen Instanz, wenn diese Zeichenfolge gefunden wird, oder -1, wenn dies nicht der Fall ist. Ist value dies der Wert, lautet startIndexEmptyder Rückgabewert .

Ausnahmen

value ist null.

startIndex ist kleiner als 0 (Null) oder größer als die Länge dieser Zeichenfolge.

comparisonType ist kein gültiger StringComparison Wert.

Beispiele

Im folgenden Beispiel werden drei Überladungen der IndexOf Methode veranschaulicht, die das erste Vorkommen einer Zeichenfolge innerhalb einer anderen Zeichenfolge mithilfe verschiedener Werte der StringComparison Enumeration finden.

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

using System;
using System.Threading;
using System.Globalization;

class Sample 
{
    public static void Main() 
    {
    string intro = "Find the first occurrence of a character using different " + 
                   "values of StringComparison.";
    string resultFmt = "Comparison: {0,-28} Location: {1,3}";

// Define a string to search for.
// U+00c5 = LATIN CAPITAL LETTER A WITH RING ABOVE
    string CapitalAWithRing = "\u00c5"; 

// 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).
    string cat = "A Cheshire c" + "\u0061\u030a" + "t";

    int loc = 0;
    StringComparison[] scValues = {
        StringComparison.CurrentCulture,
        StringComparison.CurrentCultureIgnoreCase,
        StringComparison.InvariantCulture,
        StringComparison.InvariantCultureIgnoreCase,
        StringComparison.Ordinal,
        StringComparison.OrdinalIgnoreCase };

// Clear the screen and display an introduction.
    Console.Clear();
    Console.WriteLine(intro);

// 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");
    Console.WriteLine("The current culture is \"{0}\" - {1}.", 
                       Thread.CurrentThread.CurrentCulture.Name,
                       Thread.CurrentThread.CurrentCulture.DisplayName);

// Display the string to search for and the string to search.
    Console.WriteLine("Search for the string \"{0}\" in the string \"{1}\"", 
                       CapitalAWithRing, cat);
    Console.WriteLine();

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

    Console.WriteLine("Part 1: Start index and count are specified.");
    foreach (StringComparison sc in scValues)
        {
        loc = cat.IndexOf(CapitalAWithRing, 0, cat.Length, sc);
        Console.WriteLine(resultFmt, sc, loc);
        }

// Search using different values of StringComparison. Specify the 
// start index. 
    Console.WriteLine("\nPart 2: Start index is specified.");
    foreach (StringComparison sc in scValues)
        {
        loc = cat.IndexOf(CapitalAWithRing, 0, sc);
        Console.WriteLine(resultFmt, sc, loc);
        }

// Search using different values of StringComparison. 
    Console.WriteLine("\nPart 3: Neither start index nor count is specified.");
    foreach (StringComparison sc in scValues)
        {
        loc = cat.IndexOf(CapitalAWithRing, sc);
        Console.WriteLine(resultFmt, sc, loc);
        }
    }
}

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

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

open System
open System.Threading
open System.Globalization

let intro = "Find the first occurrence of a character using different values of StringComparison."

// Define a string to search for.
// U+00c5 = LATIN CAPITAL LETTER A WITH RING ABOVE
let CapitalAWithRing = "\u00c5"

// 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).
let cat = "A Cheshire c" + "\u0061\u030a" + "t"

let scValues = 
    [| StringComparison.CurrentCulture
       StringComparison.CurrentCultureIgnoreCase
       StringComparison.InvariantCulture
       StringComparison.InvariantCultureIgnoreCase
       StringComparison.Ordinal
       StringComparison.OrdinalIgnoreCase |]

// Clear the screen and display an introduction.
Console.Clear()
printfn $"{intro}"

// 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 <- CultureInfo "en-US"
printfn $"The current culture is \"{Thread.CurrentThread.CurrentCulture.Name}\" - {Thread.CurrentThread.CurrentCulture.DisplayName}."

// Display the string to search for and the string to search.
printfn $"Search for the string \"{CapitalAWithRing}\" in the string \"{cat}\"\n"

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

printfn "Part 1: Start index and count are specified."
for sc in scValues do
    let loc = cat.IndexOf(CapitalAWithRing, 0, cat.Length, sc)
    printfn $"Comparison: {sc,-28} Location: {loc,3}"

// Search using different values of StringComparison. Specify the
// start index.
printfn "\nPart 2: Start index is specified."
for sc in scValues do
    let loc = cat.IndexOf(CapitalAWithRing, 0, sc)
    printfn $"Comparison: {sc,-28} Location: {loc,3}"

// Search using different values of StringComparison.
Console.WriteLine("\nPart 3: Neither start index nor count is specified.")
for sc in scValues do
    let loc = cat.IndexOf(CapitalAWithRing, sc)
    Console.WriteLine("Comparison: {0,-28} Location: {1,3}", sc, loc)

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

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

Imports System.Threading
Imports System.Globalization

Class Sample
    Public Shared Sub Main() 
        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
        
        ' Clear the screen and display an introduction.
        Console.Clear()
        Console.WriteLine(intro)
        
        ' 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")
        Console.WriteLine("The current culture is ""{0}"" - {1}.", _
                           Thread.CurrentThread.CurrentCulture.Name, _ 
                           Thread.CurrentThread.CurrentCulture.DisplayName)
        
        ' Display the string to search for and the string to search.
        Console.WriteLine("Search for the string ""{0}"" in the string ""{1}""", _
                           CapitalAWithRing, cat)
        Console.WriteLine()
        
        ' 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.

        Console.WriteLine("Part 1: Start index and count are specified.")
        For Each sc In  scValues
            loc = cat.IndexOf(CapitalAWithRing, 0, cat.Length, sc)
            Console.WriteLine(resultFmt, sc, loc)
        Next sc
        
        ' Search using different values of StringComparison. Specify the 
        ' start index. 

        Console.WriteLine(vbCrLf & "Part 2: Start index is specified.")
        For Each sc In  scValues
            loc = cat.IndexOf(CapitalAWithRing, 0, sc)
            Console.WriteLine(resultFmt, sc, loc)
        Next sc
        
        ' Search using different values of StringComparison. 

        Console.WriteLine(vbCrLf & "Part 3: Neither start index nor count is specified.")
        For Each sc In  scValues
            loc = cat.IndexOf(CapitalAWithRing, sc)
            Console.WriteLine(resultFmt, sc, loc)
        Next sc
    
    End Sub
End Class

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

Hinweise

Die Indexnummerierung beginnt mit 0. Der startIndex Parameter kann zwischen 0 und der Länge der Zeichenfolgeninstanz liegen. Entspricht startIndex der Länge der Zeichenfolgeninstanz, gibt die Methode -1 zurück.

Der comparisonType Parameter gibt an, nach dem value Parameter mithilfe der aktuellen oder invarianten Kultur zu suchen, wobei bei der Suche nach Groß- oder Kleinschreibung unterschieden wird und Wörter oder Ordnungsvergleichsregeln verwendet werden.

Hinweise für Aufrufer

Zeichensätze enthalten ignorierbare Zeichen, bei denen es sich um Zeichen handelt, die beim Durchführen eines sprachlichen oder kultursensitiven Vergleichs nicht berücksichtigt werden. In einer kultursensiblen Suche (d. h. wenn comparisonType nicht Ordinal oder OrdinalIgnoreCase), wenn value ein ignorierbares Zeichen enthält, entspricht das Ergebnis der Suche mit diesem Zeichen entfernt. Wenn value nur ein oder mehrere ignorierbare Zeichen bestehen, gibt startIndexdie IndexOf(String, Int32, StringComparison) Methode immer die Zeichenposition zurück, an der die Suche beginnt.

Im folgenden Beispiel wird die IndexOf(String, Int32, StringComparison) Methode verwendet, um die Position eines weichen Bindestrichs (U+00AD) gefolgt von einem "m" zu finden, der mit der dritten Zeichenposition in zwei Zeichenfolgen beginnt. Nur eine der Zeichenfolgen enthält die erforderliche Teilzeichenfolge. Wenn das Beispiel auf .NET Framework 4 oder höher ausgeführt wird, in beiden Fällen, da der weiche Bindestrich ein ignorierbares Zeichen ist, gibt die Methode den Index von "m" in der Zeichenfolge zurück, wenn ein kultursensitiver Vergleich ausgeführt wird. Beachten Sie, dass bei der ersten Zeichenfolge, die den weichen Bindestrich gefolgt von einem "m" enthält, der Index des weichen Bindestrichs nicht zurückgegeben wird, sondern stattdessen den Index des "m" zurückgibt. Die Methode gibt den Index des weichen Bindestrichs in der ersten Zeichenfolge nur dann zurück, wenn ein Ordinalvergleich ausgeführt wird.

using System;

public class Example
{
    public static void Main()
    {
      
        string searchString = "\u00ADm";
        string s1 = "ani\u00ADmal" ;
        string s2 = "animal";

        Console.WriteLine(s1.IndexOf(searchString, 2, StringComparison.CurrentCulture));
        Console.WriteLine(s1.IndexOf(searchString, 2, StringComparison.Ordinal));
        Console.WriteLine(s2.IndexOf(searchString, 2, StringComparison.CurrentCulture));
        Console.WriteLine(s2.IndexOf(searchString, 2, StringComparison.Ordinal));

        // The example displays the following output:
        //       4
        //       3
        //       3
        //       -1
    }
}
open System

let searchString = "\u00ADm"
let s1 = "ani\u00ADmal"
let s2 = "animal"

printfn $"{s1.IndexOf(searchString, 2, StringComparison.CurrentCulture)}"
printfn $"{s1.IndexOf(searchString, 2, StringComparison.Ordinal)}"
printfn $"{s2.IndexOf(searchString, 2, StringComparison.CurrentCulture)}"
printfn $"{s2.IndexOf(searchString, 2, StringComparison.Ordinal)}"

// The example displays the following output:
//       4
//       3
//       3
//       -1
Module Example
   Public Sub Main()
      Dim searchString As String = Chrw(&h00AD) + "m"
      Dim s1 As String = "ani" + ChrW(&h00AD) + "mal"
      Dim s2 As String = "animal"

      Console.WriteLine(s1.IndexOf(searchString, 2, StringComparison.CurrentCulture))
      Console.WriteLine(s1.IndexOf(searchString, 2, StringComparison.Ordinal))
      Console.WriteLine(s2.IndexOf(searchString, 2, StringComparison.CurrentCulture))
      Console.WriteLine(s2.IndexOf(searchString, 2, StringComparison.Ordinal))
   End Sub
End Module
' The example displays the following output:
'       4
'       3
'       3
'       -1

Gilt für:

IndexOf(String, Int32, Int32)

Quelle:
String.Searching.cs
Quelle:
String.Searching.cs
Quelle:
String.Searching.cs
Quelle:
String.Searching.cs

Meldet den nullbasierten Index des ersten Vorkommens der angegebenen Zeichenfolge in dieser Instanz. Die Suche beginnt an einer angegebenen Zeichenposition und untersucht eine bestimmte Anzahl von Zeichenpositionen.

public:
 int IndexOf(System::String ^ value, int startIndex, int count);
public int IndexOf(string value, int startIndex, int count);
member this.IndexOf : string * int * int -> int
Public Function IndexOf (value As String, startIndex As Integer, count As Integer) As Integer

Parameter

value
String

Die Zeichenfolge, die gesucht werden soll.

startIndex
Int32

Die Startposition der Suche.

count
Int32

Die Anzahl der zu überprüfenden Zeichenpositionen.

Gibt zurück

Die nullbasierte Indexposition value von Anfang der aktuellen Instanz, wenn diese Zeichenfolge gefunden wird, oder -1, wenn dies nicht der Fall ist. Ist value dies der Wert, lautet startIndexEmptyder Rückgabewert .

Ausnahmen

value ist null.

count oder startIndex ist negativ.

-oder-

startIndex ist größer als die Länge dieser Zeichenfolge.

-oder-

count ist größer als die Länge dieser Zeichenfolge minus startIndex.

Beispiele

Im folgenden Beispiel wird der Index aller Vorkommen der Zeichenfolge "he" innerhalb einer Teilzeichenfolge einer anderen Zeichenfolge gefunden. Beachten Sie, dass die Anzahl der zu durchsuchenden Zeichen für jede Such iteration neu berechnet werden muss.

string br1 = "0----+----1----+----2----+----3----+----4----+----5----+----6----+---";
string br2 = "012345678901234567890123456789012345678901234567890123456789012345678";
string str = "Now is the time for all good men to come to the aid of their country.";
int start;
int at;
int end;
int count;

end = str.Length;
start = end/2;
Console.WriteLine();
Console.WriteLine("All occurrences of 'he' from position {0} to {1}.", start, end-1);
Console.WriteLine("{1}{0}{2}{0}{3}{0}", Environment.NewLine, br1, br2, str);
Console.Write("The string 'he' occurs at position(s): ");

count = 0;
at = 0;
while((start <= end) && (at > -1))
{
    // start+count must be a position within -str-.
    count = end - start;
    at = str.IndexOf("he", start, count);
    if (at == -1) break;
    Console.Write("{0} ", at);
    start = at+1;
}
Console.WriteLine();

/*
This example produces the following results:

All occurrences of 'he' from position 34 to 68.
0----+----1----+----2----+----3----+----4----+----5----+----6----+---
012345678901234567890123456789012345678901234567890123456789012345678
Now is the time for all good men to come to the aid of their country.

The string 'he' occurs at position(s): 45 56

*/
let br1 = "0----+----1----+----2----+----3----+----4----+----5----+----6----+---"
let br2 = "012345678901234567890123456789012345678901234567890123456789012345678"
let str = "Now is the time for all good men to come to the aid of their country."

let last = str.Length
let mutable start = last / 2
printfn $"\nAll occurrences of 'he' from position {start} to {last - 1}."
printfn $"{br1}{Environment.NewLine}{br2}{Environment.NewLine}{str}{Environment.NewLine}"
printf "The string 'he' occurs at position(s): "

let mutable broken = false
let mutable at = 0
while (start <= last) && (at > -1) do
    // start+count must be a position within -str-.
    let count = last - start
    at <- str.IndexOf("he", start, count)
    if at = -1 then
        broken <- true
    else
        printf $"{at} "
        start <- at + 1
printfn ""

(*
This example produces the following results:

All occurrences of 'he' from position 34 to 68.
0----+----1----+----2----+----3----+----4----+----5----+----6----+---
012345678901234567890123456789012345678901234567890123456789012345678
Now is the time for all good men to come to the aid of their country.

The string 'he' occurs at position(s): 45 56

*)
' Sample for String.IndexOf(String, Int32, Int32)
Class Sample
   
   Public Shared Sub Main()
      
      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
      Dim [end] As Integer
      Dim count As Integer
      
      [end] = str.Length
      start = [end] / 2
      Console.WriteLine()
      Console.WriteLine("All occurrences of 'he' from position {0} to {1}.", start, [end] - 1)
      Console.WriteLine("{1}{0}{2}{0}{3}{0}", Environment.NewLine, br1, br2, str)
      Console.Write("The string 'he' occurs at position(s): ")
      
      count = 0
      at = 0
      While start <= [end] AndAlso at > - 1
         ' start+count must be a position within -str-.
         count = [end] - start
         at = str.IndexOf("he", start, count)
         If at = - 1 Then
            Exit While
         End If
         Console.Write("{0} ", at)
         start = at + 1
      End While
      Console.WriteLine()
   End Sub
End Class
'
'This example produces the following results:
'
'All occurrences of 'he' from position 33 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 string 'he' occurs at position(s): 45 56
'
'

Hinweise

Die Indexnummerierung beginnt mit 0 (Null). Der startIndex Parameter kann zwischen 0 und der Länge der Zeichenfolgeninstanz liegen.

Mit dieser Methode wird mithilfe der aktuellen Kultur eine Suche nach Wörtern (Groß-/Kleinschreibung und Kultursensitiv) durchgeführt. Die Suche beginnt mit startIndex -1.startIndex + count Das Zeichen bei startIndex + count der Suche ist nicht enthalten.

Zeichensätze enthalten ignorierbare Zeichen, bei denen es sich um Zeichen handelt, die beim Durchführen eines sprachlichen oder kultursensitiven Vergleichs nicht berücksichtigt werden. Bei einer kultursensiblen Suche, wenn value sie ein ignorierbares Zeichen enthält, entspricht das Ergebnis der Suche mit dem entfernten Zeichen. Wenn value nur ein oder mehrere ignorierbare Zeichen bestehen, gibt startIndexdie IndexOf(String, Int32, Int32) Methode immer die Zeichenposition zurück, an der die Suche beginnt. Im folgenden Beispiel wird die IndexOf(String, Int32, Int32) Methode verwendet, um die Position eines weichen Bindestrichs (U+00AD) gefolgt von einem "m" zu finden, der in der dritten bis sechsten Zeichenposition in zwei Zeichenfolgen beginnt. Nur eine der Zeichenfolgen enthält die erforderliche Teilzeichenfolge. Wenn das Beispiel auf .NET Framework 4 oder höher ausgeführt wird, in beiden Fällen, da der weiche Bindestrich ein ignorierbares Zeichen ist, gibt die Methode den Index von "m" in der Zeichenfolge zurück, wenn ein kultursensitiver Vergleich ausgeführt wird. Beachten Sie, dass bei der ersten Zeichenfolge, die den weichen Bindestrich gefolgt von einem "m" enthält, der Index des weichen Bindestrichs nicht zurückgegeben wird, sondern stattdessen den Index des "m" zurückgibt.

using System;

public class Example
{
    public static void Main()
    {
        string searchString = "\u00ADm";
        string s1 = "ani\u00ADmal" ;
        string s2 = "animal";

        Console.WriteLine(s1.IndexOf(searchString, 2, 4));
        Console.WriteLine(s2.IndexOf(searchString, 2, 4));

        // The example displays the following output:
        //       4
        //       3
    }
}
let searchString = "\u00ADm"
let s1 = "ani\u00ADmal"
let s2 = "animal"

printfn $"{s1.IndexOf(searchString, 2, 4)}"
printfn $"{s2.IndexOf(searchString, 2, 4)}"

// The example displays the following output:
//       4
//       3
Module Example
   Public Sub Main()
      Dim searchString As String = Chrw(&h00AD) + "m"
      Dim s1 As String = "ani" + ChrW(&h00AD) + "mal"
      Dim s2 As String = "animal"

      Console.WriteLine(s1.IndexOf(searchString, 2, 4))
      Console.WriteLine(s2.IndexOf(searchString, 2, 4))
   End Sub
End Module
' The example displays the following output:
'       4
'       3

Hinweise für Aufrufer

Wie in den bewährten Methoden für die Verwendung von Zeichenfolgen erläutert, wird empfohlen, das Aufrufen von Zeichenfolgenvergleichsmethoden zu vermeiden, die Standardwerte ersetzen und stattdessen Methoden aufrufen, die Parameter explizit angeben müssen. Um die Vergleichsregeln der aktuellen Kultur zum Ausführen dieses Vorgangs zu verwenden, signalisieren Sie die Absicht explizit, indem Sie die IndexOf(String, Int32, Int32, StringComparison) Methodenüberladung mit einem Wert für den comparisonType Parameter CurrentCulture aufrufen. Wenn Sie keinen sprachlichen Vergleich benötigen, sollten Sie die Verwendung in Betracht ziehen Ordinal.

Weitere Informationen

Gilt für:

IndexOf(Char, Int32, Int32)

Quelle:
String.Searching.cs
Quelle:
String.Searching.cs
Quelle:
String.Searching.cs
Quelle:
String.Searching.cs

Meldet den nullbasierten Index des ersten Vorkommens des angegebenen Zeichens in dieser Instanz. Die Suche beginnt an einer angegebenen Zeichenposition und untersucht eine bestimmte Anzahl von Zeichenpositionen.

public:
 int IndexOf(char value, int startIndex, int count);
public int IndexOf(char value, int startIndex, int count);
member this.IndexOf : char * int * int -> int
Public Function IndexOf (value As Char, startIndex As Integer, count As Integer) As Integer

Parameter

value
Char

Ein Unicode-Zeichen, das gesucht werden soll.

startIndex
Int32

Die Startposition der Suche.

count
Int32

Die Anzahl der zu überprüfenden Zeichenpositionen.

Gibt zurück

Die nullbasierte Indexposition value von Anfang der Zeichenfolge, wenn dieses Zeichen gefunden wird, oder -1, wenn das nicht der Fehler ist.

Ausnahmen

count oder startIndex ist negativ.

-oder-

startIndex ist größer als die Länge dieser Zeichenfolge.

-oder-

count ist größer als die Länge dieser Zeichenfolge minus startIndex.

Beispiele

Im folgenden Beispiel wird die IndexOf Methode veranschaulicht.

// 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
*/
// Example for the String.IndexOf( char, int, int ) method.
open System

let br1 =
    "0----+----1----+----2----+----3----+----" +
    "4----+----5----+----6----+----7"
let br2 =
    "0123456789012345678901234567890123456789" +
    "0123456789012345678901234567890"
let str =
    "ABCDEFGHI abcdefghi ABCDEFGHI abcdefghi " +
    "ABCDEFGHI abcdefghi ABCDEFGHI"

printfn "This example of String.IndexOf( char, int, int )\ngenerates the following output."
printfn $"{Environment.NewLine}{br1}{Environment.NewLine}{br2}{Environment.NewLine}{str}{Environment.NewLine}"

let findAllChar (target: char) (searched: string) =
    printf $"The character '{target}' occurs at position(s): "

    let mutable hitCount = 0
    let mutable startIndex = -1
    let mutable broken = false
    // Search for all occurrences of the target.
    while not broken do
        startIndex <- searched.IndexOf(target, startIndex + 1, searched.Length - startIndex - 1)

        // Exit the loop if the target is not found.
        if startIndex < 0 then
            broken <- true
        else

        printf $"{startIndex}, "
        hitCount <- hitCount + 1

    printfn $"occurrences: {hitCount}"

findAllChar 'A' str
findAllChar 'a' str
findAllChar 'I' str
findAllChar 'i' str
findAllChar '@' str
findAllChar ' ' str


(*
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
*)
' Example for the String.IndexOf( Char, Integer, Integer ) method.
Module IndexOfCII
   
    Sub Main()
        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"
          
        Console.WriteLine( _
            "This example of String.IndexOf( Char, Integer, Integer )" & _
            vbCrLf & "generates the following output." )
        Console.WriteLine( _
            "{0}{1}{0}{2}{0}{3}{0}", _
            Environment.NewLine, br1, br2, str)

        FindAllChar("A"c, str)
        FindAllChar("a"c, str)
        FindAllChar("I"c, str)
        FindAllChar("i"c, str)
        FindAllChar("@"c, str)
        FindAllChar(" "c, str)
    End Sub
       
    Sub FindAllChar(target As Char, searched As String)

        Console.Write( _
            "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 

            Console.Write("{0}, ", startIndex)
            hitCount += 1
        End While
          
        Console.WriteLine("occurrences: {0}", hitCount)

    End Sub
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

Hinweise

Die Suche beginnt mit startIndex -1.startIndex + count Das Zeichen bei startIndex + count der Suche ist nicht enthalten.

Die Indexnummerierung beginnt mit 0 (Null). Der startIndex Parameter kann zwischen 0 und der Länge der Zeichenfolgeninstanz liegen.

Diese Methode führt eine Ordnungssuche (kulturunempfindlich) durch, bei der ein Zeichen nur dann als Äquivalent zu einem anderen Zeichen betrachtet wird, wenn ihre Unicode-Skalarwerte identisch sind. Verwenden Sie zum Ausführen einer kultursensitiven Suche die Methode, bei der CompareInfo.IndexOf ein Unicode-Skalarwert, der ein vorkompiliertes Zeichen darstellt, z. B. die Ligatur "Æ" (U+00C6), je nach Kultur als gleichwertig angesehen werden kann.

Weitere Informationen

Gilt für:

IndexOf(Char)

Quelle:
String.Searching.cs
Quelle:
String.Searching.cs
Quelle:
String.Searching.cs
Quelle:
String.Searching.cs

Meldet den nullbasierten Index des ersten Vorkommens des angegebenen Unicode-Zeichens in dieser Zeichenfolge.

public:
 int IndexOf(char value);
public int IndexOf(char value);
member this.IndexOf : char -> int
Public Function IndexOf (value As Char) As Integer

Parameter

value
Char

Ein Unicode-Zeichen, das gesucht werden soll.

Gibt zurück

Die nullbasierte Indexposition, wenn value dieses Zeichen gefunden wird, oder -1, wenn das nicht der Fehler ist.

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie Sie mithilfe der IndexOf Methode nach String einem Zeichen suchen können.

// Create a Unicode string with 5 Greek Alpha characters.
String szGreekAlpha = new String('\u0391',5);

// Create a Unicode string with 3 Greek Omega characters.
String szGreekOmega = "\u03A9\u03A9\u03A9";

String szGreekLetters = String.Concat(szGreekOmega, szGreekAlpha, 
                                    szGreekOmega.Clone());

// Display the entire string.
Console.WriteLine("The string: {0}", szGreekLetters);

// The first index of Alpha.
int ialpha = szGreekLetters.IndexOf('\u0391');
// The first index of Omega.
int iomega = szGreekLetters.IndexOf('\u03A9');

Console.WriteLine("First occurrence of the Greek letter Alpha: Index {0}", 
                ialpha);
Console.WriteLine("First occurrence of the Greek letter Omega: Index {0}", 
                iomega);

// The example displays the following output:
//    The string: ΩΩΩΑΑΑΑΑΩΩΩ
//    First occurrence of the Greek letter Alpha: Index 3
//    First occurrence of the Greek letter Omega: Index 0
open System

// Create a Unicode string with 5 Greek Alpha characters.
let szGreekAlpha = String('\u0391',5)

// Create a Unicode string with 3 Greek Omega characters.
let szGreekOmega = "\u03A9\u03A9\u03A9"

let szGreekLetters = String.Concat(szGreekOmega, szGreekAlpha, szGreekOmega.Clone())

// Display the entire string.
printfn $"The string: {szGreekLetters}"

// The first index of Alpha.
let ialpha = szGreekLetters.IndexOf '\u0391'
// The first index of Omega.
let iomega = szGreekLetters.IndexOf '\u03A9'

printfn "First occurrence of the Greek letter Alpha: Index {ialpha}"
printfn "First occurrence of the Greek letter Omega: Index {iomega}"

// The example displays the following output:
//    The string: ΩΩΩΑΑΑΑΑΩΩΩ
//    First occurrence of the Greek letter Alpha: Index 3
//    First occurrence of the Greek letter Omega: Index 0
Public Module Example
   Public Sub Main()
      ' Create a Unicode string with 5 Greek Alpha characters.
      Dim szGreekAlpha As New String(ChrW(&H0391), 5)

      ' Create a Unicode string with 3 Greek Omega characters.
      Dim szGreekOmega As String = ChrW(&H03A9) + ChrW(&H03A9)+
                                   ChrW(&H03A9)

      Dim szGreekLetters As String = String.Concat(szGreekOmega, szGreekAlpha, _
                                                   szGreekOmega.Clone())

      ' Display the entire string.
      Console.WriteLine(szGreekLetters)

      ' The first index of Alpha.
      Dim iAlpha As Integer = szGreekLetters.IndexOf(ChrW(&H0391))
      ' The first index of Omega.
      Dim iomega As Integer = szGreekLetters.IndexOf(ChrW(&H03A9))

      Console.WriteLine("First occurrence of the Greek letter Alpha: Index {0}", 
                        ialpha)
      Console.WriteLine("First occurrence of the Greek letter Omega: Index {0}", 
                        iomega)
   End Sub
End Module
' The example displays the following output:
'       The string: OOO?????OOO
'       First occurrence of the Greek letter Alpha: Index 3
'       First occurrence of the Greek letter Omega: Index 0

Hinweise

Die Indexnummerierung beginnt mit Null.

Diese Methode führt eine Ordnungssuche (kulturunempfindlich) durch, bei der ein Zeichen nur dann als Äquivalent zu einem anderen Zeichen betrachtet wird, wenn ihre Unicode-Skalarwerte identisch sind. Verwenden Sie zum Ausführen einer kultursensitiven Suche die Methode, bei der CompareInfo.IndexOf ein Unicode-Skalarwert, der ein vorkompiliertes Zeichen darstellt, z. B. die Ligatur "Æ" (U+00C6), je nach Kultur als gleichwertig angesehen werden kann.

Weitere Informationen

Gilt für:

IndexOf(Rune, Int32)

public:
 int IndexOf(System::Text::Rune value, int startIndex);
public int IndexOf(System.Text.Rune value, int startIndex);
member this.IndexOf : System.Text.Rune * int -> int
Public Function IndexOf (value As Rune, startIndex As Integer) As Integer

Parameter

value
Rune
startIndex
Int32

Gibt zurück

Gilt für:

IndexOf(String, StringComparison)

Quelle:
String.Searching.cs
Quelle:
String.Searching.cs
Quelle:
String.Searching.cs
Quelle:
String.Searching.cs

Meldet den nullbasierten Index des ersten Vorkommens der angegebenen Zeichenfolge im aktuellen String Objekt. Ein Parameter gibt den Suchtyp an, der für die angegebene Zeichenfolge verwendet werden soll.

public:
 int IndexOf(System::String ^ value, StringComparison comparisonType);
public int IndexOf(string value, StringComparison comparisonType);
member this.IndexOf : string * StringComparison -> int
Public Function IndexOf (value As String, comparisonType As StringComparison) As Integer

Parameter

value
String

Die Zeichenfolge, die gesucht werden soll.

comparisonType
StringComparison

Einer der Enumerationswerte, die die Regeln für die Suche angibt.

Gibt zurück

Die Indexposition des value Parameters, wenn diese Zeichenfolge gefunden wird, oder -1, wenn dies nicht der Fehler ist. Ist value dies der Wert , ist Emptyder Rückgabewert 0.

Ausnahmen

value ist null.

comparisonType ist kein gültiger StringComparison Wert.

Beispiele

Im folgenden Beispiel werden drei Überladungen der IndexOf Methode veranschaulicht, die das erste Vorkommen einer Zeichenfolge innerhalb einer anderen Zeichenfolge mithilfe verschiedener Werte der StringComparison Enumeration finden.

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

using System;
using System.Threading;
using System.Globalization;

class Sample 
{
    public static void Main() 
    {
    string intro = "Find the first occurrence of a character using different " + 
                   "values of StringComparison.";
    string resultFmt = "Comparison: {0,-28} Location: {1,3}";

// Define a string to search for.
// U+00c5 = LATIN CAPITAL LETTER A WITH RING ABOVE
    string CapitalAWithRing = "\u00c5"; 

// 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).
    string cat = "A Cheshire c" + "\u0061\u030a" + "t";

    int loc = 0;
    StringComparison[] scValues = {
        StringComparison.CurrentCulture,
        StringComparison.CurrentCultureIgnoreCase,
        StringComparison.InvariantCulture,
        StringComparison.InvariantCultureIgnoreCase,
        StringComparison.Ordinal,
        StringComparison.OrdinalIgnoreCase };

// Clear the screen and display an introduction.
    Console.Clear();
    Console.WriteLine(intro);

// 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");
    Console.WriteLine("The current culture is \"{0}\" - {1}.", 
                       Thread.CurrentThread.CurrentCulture.Name,
                       Thread.CurrentThread.CurrentCulture.DisplayName);

// Display the string to search for and the string to search.
    Console.WriteLine("Search for the string \"{0}\" in the string \"{1}\"", 
                       CapitalAWithRing, cat);
    Console.WriteLine();

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

    Console.WriteLine("Part 1: Start index and count are specified.");
    foreach (StringComparison sc in scValues)
        {
        loc = cat.IndexOf(CapitalAWithRing, 0, cat.Length, sc);
        Console.WriteLine(resultFmt, sc, loc);
        }

// Search using different values of StringComparison. Specify the 
// start index. 
    Console.WriteLine("\nPart 2: Start index is specified.");
    foreach (StringComparison sc in scValues)
        {
        loc = cat.IndexOf(CapitalAWithRing, 0, sc);
        Console.WriteLine(resultFmt, sc, loc);
        }

// Search using different values of StringComparison. 
    Console.WriteLine("\nPart 3: Neither start index nor count is specified.");
    foreach (StringComparison sc in scValues)
        {
        loc = cat.IndexOf(CapitalAWithRing, sc);
        Console.WriteLine(resultFmt, sc, loc);
        }
    }
}

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

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

open System
open System.Threading
open System.Globalization

let intro = "Find the first occurrence of a character using different values of StringComparison."

// Define a string to search for.
// U+00c5 = LATIN CAPITAL LETTER A WITH RING ABOVE
let CapitalAWithRing = "\u00c5"

// 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).
let cat = "A Cheshire c" + "\u0061\u030a" + "t"

let scValues = 
    [| StringComparison.CurrentCulture
       StringComparison.CurrentCultureIgnoreCase
       StringComparison.InvariantCulture
       StringComparison.InvariantCultureIgnoreCase
       StringComparison.Ordinal
       StringComparison.OrdinalIgnoreCase |]

// Clear the screen and display an introduction.
Console.Clear()
printfn $"{intro}"

// 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 <- CultureInfo "en-US"
printfn $"The current culture is \"{Thread.CurrentThread.CurrentCulture.Name}\" - {Thread.CurrentThread.CurrentCulture.DisplayName}."

// Display the string to search for and the string to search.
printfn $"Search for the string \"{CapitalAWithRing}\" in the string \"{cat}\"\n"

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

printfn "Part 1: Start index and count are specified."
for sc in scValues do
    let loc = cat.IndexOf(CapitalAWithRing, 0, cat.Length, sc)
    printfn $"Comparison: {sc,-28} Location: {loc,3}"

// Search using different values of StringComparison. Specify the
// start index.
printfn "\nPart 2: Start index is specified."
for sc in scValues do
    let loc = cat.IndexOf(CapitalAWithRing, 0, sc)
    printfn $"Comparison: {sc,-28} Location: {loc,3}"

// Search using different values of StringComparison.
Console.WriteLine("\nPart 3: Neither start index nor count is specified.")
for sc in scValues do
    let loc = cat.IndexOf(CapitalAWithRing, sc)
    Console.WriteLine("Comparison: {0,-28} Location: {1,3}", sc, loc)

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

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

Imports System.Threading
Imports System.Globalization

Class Sample
    Public Shared Sub Main() 
        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
        
        ' Clear the screen and display an introduction.
        Console.Clear()
        Console.WriteLine(intro)
        
        ' 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")
        Console.WriteLine("The current culture is ""{0}"" - {1}.", _
                           Thread.CurrentThread.CurrentCulture.Name, _ 
                           Thread.CurrentThread.CurrentCulture.DisplayName)
        
        ' Display the string to search for and the string to search.
        Console.WriteLine("Search for the string ""{0}"" in the string ""{1}""", _
                           CapitalAWithRing, cat)
        Console.WriteLine()
        
        ' 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.

        Console.WriteLine("Part 1: Start index and count are specified.")
        For Each sc In  scValues
            loc = cat.IndexOf(CapitalAWithRing, 0, cat.Length, sc)
            Console.WriteLine(resultFmt, sc, loc)
        Next sc
        
        ' Search using different values of StringComparison. Specify the 
        ' start index. 

        Console.WriteLine(vbCrLf & "Part 2: Start index is specified.")
        For Each sc In  scValues
            loc = cat.IndexOf(CapitalAWithRing, 0, sc)
            Console.WriteLine(resultFmt, sc, loc)
        Next sc
        
        ' Search using different values of StringComparison. 

        Console.WriteLine(vbCrLf & "Part 3: Neither start index nor count is specified.")
        For Each sc In  scValues
            loc = cat.IndexOf(CapitalAWithRing, sc)
            Console.WriteLine(resultFmt, sc, loc)
        Next sc
    
    End Sub
End Class

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

Hinweise

Die Indexnummerierung beginnt mit Null.

Der comparisonType Parameter gibt an, nach dem value Parameter mithilfe der aktuellen oder invarianten Kultur zu suchen, wobei bei der Suche nach Groß- oder Kleinschreibung unterschieden wird und Wörter oder Ordnungsvergleichsregeln verwendet werden.

Hinweise für Aufrufer

Zeichensätze enthalten ignorierbare Zeichen, bei denen es sich um Zeichen handelt, die beim Durchführen eines sprachlichen oder kultursensitiven Vergleichs nicht berücksichtigt werden. In einer kultursensiblen Suche (d. h. wenn comparisonType nicht Ordinal oder OrdinalIgnoreCase), wenn value ein ignorierbares Zeichen enthält, entspricht das Ergebnis der Suche mit diesem Zeichen entfernt. Wenn value nur ein oder mehrere ignorierbare Zeichen bestehen, gibt die IndexOf(String, StringComparison) Methode immer 0 (Null) zurück, um anzugeben, dass die Übereinstimmung am Anfang der aktuellen Instanz gefunden wird.

Im folgenden Beispiel wird die IndexOf(String, StringComparison) Methode verwendet, um drei Teilzeichenfolgen (einen weichen Bindestrich (U+00AD), einen weichen Bindestrich gefolgt von "n" und einen weichen Bindestrich gefolgt von "m") in zwei Zeichenfolgen zu finden. Nur eine der Zeichenfolgen enthält einen weichen Bindestrich. Wenn das Beispiel auf .NET Framework 4 oder höher ausgeführt wird, da der weiche Bindestrich ein ignorierbares Zeichen ist, gibt eine kultursensitive Suche denselben Wert zurück, den sie zurückgeben würde, wenn der weiche Bindestrich nicht in die Suchzeichenfolge eingeschlossen wurde. Eine Ordnungssuche findet jedoch erfolgreich den weichen Bindestrich in einer Zeichenfolge und meldet, dass sie nicht in der zweiten Zeichenfolge vorhanden ist.

using System;

public class Example
{
    public static void Main()
    {
        string s1 = "ani\u00ADmal";
        string s2 = "animal";
      
        Console.WriteLine("Culture-sensitive comparison:");
        // Use culture-sensitive comparison to find the soft hyphen.
        Console.WriteLine(s1.IndexOf("\u00AD", StringComparison.CurrentCulture));
        Console.WriteLine(s2.IndexOf("\u00AD", StringComparison.CurrentCulture));
      
        // Use culture-sensitive comparison to find the soft hyphen followed by "n".
        Console.WriteLine(s1.IndexOf("\u00ADn", StringComparison.CurrentCulture));
        Console.WriteLine(s2.IndexOf("\u00ADn", StringComparison.CurrentCulture));
      
        // Use culture-sensitive comparison to find the soft hyphen followed by "m".
        Console.WriteLine(s1.IndexOf("\u00ADm", StringComparison.CurrentCulture));
        Console.WriteLine(s2.IndexOf("\u00ADm", StringComparison.CurrentCulture));
      
        Console.WriteLine("Ordinal comparison:");
        // Use ordinal comparison to find the soft hyphen.
        Console.WriteLine(s1.IndexOf("\u00AD", StringComparison.Ordinal));
        Console.WriteLine(s2.IndexOf("\u00AD", StringComparison.Ordinal));
      
        // Use ordinal comparison to find the soft hyphen followed by "n".
        Console.WriteLine(s1.IndexOf("\u00ADn", StringComparison.Ordinal));
        Console.WriteLine(s2.IndexOf("\u00ADn", StringComparison.Ordinal));
      
        // Use ordinal comparison to find the soft hyphen followed by "m".
        Console.WriteLine(s1.IndexOf("\u00ADm", StringComparison.Ordinal));
        Console.WriteLine(s2.IndexOf("\u00ADm", StringComparison.Ordinal));

        // The example displays the following output:
        //       Culture-sensitive comparison:
        //       0
        //       0
        //       1
        //       1
        //       4
        //       3
        //       Ordinal comparison:
        //       3
        //       -1
        //       -1
        //       -1
        //       3
        //       -1
    }
}
open System

let s1 = "ani\u00ADmal"
let s2 = "animal"

printfn "Culture-sensitive comparison:"
// Use culture-sensitive comparison to find the soft hyphen.
printfn $"""{s1.IndexOf("\u00AD", StringComparison.CurrentCulture)}"""
printfn $"""{s2.IndexOf("\u00AD", StringComparison.CurrentCulture)}"""

// Use culture-sensitive comparison to find the soft hyphen followed by "n".
printfn $"""{s1.IndexOf("\u00ADn", StringComparison.CurrentCulture)}"""
printfn $"""{s2.IndexOf("\u00ADn", StringComparison.CurrentCulture)}"""

// Use culture-sensitive comparison to find the soft hyphen followed by "m".
printfn $"""{s1.IndexOf("\u00ADm", StringComparison.CurrentCulture)}"""
printfn $"""{s2.IndexOf("\u00ADm", StringComparison.CurrentCulture)}"""

printfn "Ordinal comparison:"
// Use ordinal comparison to find the soft hyphen.
printfn $"""{s1.IndexOf("\u00AD", StringComparison.Ordinal)}"""
printfn $"""{s2.IndexOf("\u00AD", StringComparison.Ordinal)}"""

// Use ordinal comparison to find the soft hyphen followed by "n".
printfn $"""{s1.IndexOf("\u00ADn", StringComparison.Ordinal)}"""
printfn $"""{s2.IndexOf("\u00ADn", StringComparison.Ordinal)}"""

// Use ordinal comparison to find the soft hyphen followed by "m".
printfn $"""{s1.IndexOf("\u00ADm", StringComparison.Ordinal)}"""
printfn $"""{s2.IndexOf("\u00ADm", StringComparison.Ordinal)}"""

// The example displays the following output:
//       Culture-sensitive comparison:
//       0
//       0
//       1
//       1
//       4
//       3
//       Ordinal comparison:
//       3
//       -1
//       -1
//       -1
//       3
//       -1
Module Example
   Public Sub Main()
      Dim softHyphen As String = ChrW(&h00AD)
      Dim s1 As String = "ani" + softHyphen + "mal"
      Dim s2 As String = "animal"
      
      Console.WriteLine("Culture-sensitive comparison:")
      ' Use culture-sensitive comparison to find the soft hyphen.
      Console.WriteLine(s1.IndexOf(softHyphen, StringComparison.CurrentCulture))
      Console.WriteLine(s2.IndexOf(softHyphen, StringComparison.CurrentCulture))
      
      ' Use culture-sensitive comparison to find the soft hyphen followed by "n".
      Console.WriteLine(s1.IndexOf(softHyphen + "n", StringComparison.CurrentCulture))
      Console.WriteLine(s2.IndexOf(softHyphen + "n", StringComparison.CurrentCulture))
      
      ' Use culture-sensitive comparison to find the soft hyphen followed by "m".
      Console.WriteLine(s1.IndexOf(softHyphen + "m", StringComparison.CurrentCulture))
      Console.WriteLine(s2.IndexOf(softHyphen + "m", StringComparison.CurrentCulture))
      
      Console.WriteLine("Ordinal comparison:")
      ' Use ordinal comparison to find the soft hyphen.
      Console.WriteLine(s1.IndexOf(softHyphen, StringComparison.Ordinal))
      Console.WriteLine(s2.IndexOf(softHyphen, StringComparison.Ordinal))
      
      ' Use ordinal comparison to find the soft hyphen followed by "n".
      Console.WriteLine(s1.IndexOf(softHyphen + "n", StringComparison.Ordinal))
      Console.WriteLine(s2.IndexOf(softHyphen + "n", StringComparison.Ordinal))
      
      ' Use ordinal comparison to find the soft hyphen followed by "m".
      Console.WriteLine(s1.IndexOf(softHyphen + "m", StringComparison.Ordinal))
      Console.WriteLine(s2.IndexOf(softHyphen + "m", StringComparison.Ordinal))
   End Sub
End Module
' The example displays the following output:
'       Culture-sensitive comparison:
'       0
'       0
'       1
'       1
'       4
'       3
'       Ordinal comparison:
'       3
'       -1
'       -1
'       -1
'       3
'       -1

Gilt für:

IndexOf(String, Int32)

Quelle:
String.Searching.cs
Quelle:
String.Searching.cs
Quelle:
String.Searching.cs
Quelle:
String.Searching.cs

Meldet den nullbasierten Index des ersten Vorkommens der angegebenen Zeichenfolge in dieser Instanz. Die Suche beginnt an einer angegebenen Zeichenposition.

public:
 int IndexOf(System::String ^ value, int startIndex);
public int IndexOf(string value, int startIndex);
member this.IndexOf : string * int -> int
Public Function IndexOf (value As String, startIndex As Integer) As Integer

Parameter

value
String

Die Zeichenfolge, die gesucht werden soll.

startIndex
Int32

Die Startposition der Suche.

Gibt zurück

Die nullbasierte Indexposition value von Anfang der aktuellen Instanz, wenn diese Zeichenfolge gefunden wird, oder -1, wenn dies nicht der Fall ist. Ist value dies der Wert, lautet startIndexEmptyder Rückgabewert .

Ausnahmen

value ist null.

startIndex ist kleiner als 0 (Null) oder größer als die Länge dieser Zeichenfolge.

Beispiele

Im folgenden Beispiel wird nach allen Vorkommen einer angegebenen Zeichenfolge innerhalb einer Zielzeichenfolge gesucht.

using System;

public class IndexOfTest {
    public static void Main() {

        string strSource = "This is the string which we will perform the search on";

        Console.WriteLine("The search string is:{0}\"{1}\"{0}", Environment.NewLine, strSource);

        string strTarget = "";
        int found = 0;
        int totFinds = 0;

        do {
            Console.Write("Please enter a search value to look for in the above string (hit Enter to exit) ==> ");

            strTarget = Console.ReadLine();

            if (strTarget != "") {

                for (int i = 0; i < strSource.Length; i++) {

                    found = strSource.IndexOf(strTarget, i);

                    if (found >= 0) {
                        totFinds++;
                        i = found;
                    }
                    else
                    {
                        break;
                    }
                }
            }
            else
            {
                return;
            }

            Console.WriteLine("{0}The search parameter '{1}' was found {2} times.{0}",
                    Environment.NewLine, strTarget, totFinds);

            totFinds = 0;
        } while ( true );
    }
}
open System

let strSource = "This is the string which we will perform the search on"

printfn $"The search string is:{Environment.NewLine}\"{strSource}\"{Environment.NewLine}"

let mutable broken = false
while not broken do
    let mutable totFinds = 0
    printf "Please enter a search value to look for in the above string (hit Enter to exit) => "

    let strTarget = stdin.ReadLine()

    if strTarget <> "" then
        let mutable i = 0
        let mutable broken = false
        while not broken && i <= strSource.Length - 1 do
            let found = strSource.IndexOf(strTarget, i)

            if found >= 0 then
                totFinds <- totFinds + 1
                i <- found
            else
                broken <- true
            i <- i + 1
    else
        broken <- true

    printfn $"{Environment.NewLine}The search parameter '{strTarget}' was found {totFinds} times.{Environment.NewLine}"
Public Class IndexOfTest
    
    Public Shared Sub Main()
        Dim strSource As String = "This is the string which we will perform the search on"
        
        Console.WriteLine("The search string is:{0}{1}{0}", Environment.NewLine, strSource)
        Dim strTarget As String = ""
        Dim found As Integer = 0
        Dim totFinds As Integer = 0
        
        Do
            Console.Write("Please enter a search value to look for in the above string (hit Enter to exit) ==> ")
            
            strTarget = Console.ReadLine()
            If strTarget <> "" Then
                Dim i As Integer
                
                
                For i = 0 To strSource.Length - 1
                    
                    found = strSource.IndexOf(strTarget, i)
                    If found >= 0 Then
                        
                        totFinds += 1
                        i = found
                    Else
                        Exit For
                    End If
                Next i
            Else
                Return
            
            End If
            Console.WriteLine("{0}The search parameter '{1}' was found {2} times.{0}", Environment.NewLine, strTarget, totFinds)
            
            totFinds = 0
        
        Loop While True
    End Sub
End Class

Hinweise

Die Indexnummerierung beginnt mit 0. Der startIndex Parameter kann zwischen 0 und der Länge der Zeichenfolgeninstanz liegen. Entspricht startIndex der Länge der Zeichenfolgeninstanz, gibt die Methode -1 zurück.

Mit dieser Methode wird mithilfe der aktuellen Kultur eine Suche nach Wörtern (Groß-/Kleinschreibung und Kultursensitiv) durchgeführt. Die Suche beginnt an der startIndex Zeichenposition dieser Instanz und wird bis zur letzten Zeichenposition fortgesetzt.

Zeichensätze enthalten ignorierbare Zeichen, bei denen es sich um Zeichen handelt, die beim Durchführen eines sprachlichen oder kultursensitiven Vergleichs nicht berücksichtigt werden. Bei einer kultursensiblen Suche, wenn value sie ein ignorierbares Zeichen enthält, entspricht das Ergebnis der Suche mit dem entfernten Zeichen. Wenn value nur ein oder mehrere ignorierbare Zeichen bestehen, gibt startIndexdie IndexOf(String, Int32) Methode immer die Zeichenposition zurück, an der die Suche beginnt. Im folgenden Beispiel wird die IndexOf(String, Int32) Methode verwendet, um die Position eines weichen Bindestrichs (U+00AD) gefolgt von einem "m" in zwei Zeichenfolgen zu finden. Nur eine der Zeichenfolgen enthält die erforderliche Teilzeichenfolge. Wenn das Beispiel auf .NET Framework 4 oder höher ausgeführt wird, in beiden Fällen, da der weiche Bindestrich ein ignorierbares Zeichen ist, gibt die Methode den Index von "m" in der Zeichenfolge zurück. Beachten Sie, dass bei der ersten Zeichenfolge, die den weichen Bindestrich gefolgt von einem "m" enthält, der Index des weichen Bindestrichs nicht zurückgegeben wird, sondern stattdessen den Index des "m" zurückgibt.

using System;

public class Example
{
    public static void Main()
    {
        string searchString = "\u00ADm";
        string s1 = "ani\u00ADmal" ;
        string s2 = "animal";

        Console.WriteLine(s1.IndexOf(searchString, 2));
        Console.WriteLine(s2.IndexOf(searchString, 2));

        // The example displays the following output:
        //       4
        //       3
    }
}
let searchString = "\u00ADm"
let s1 = "ani\u00ADmal"
let s2 = "animal"

printfn $"{s1.IndexOf(searchString, 2)}"
printfn $"{s2.IndexOf(searchString, 2)}"

// The example displays the following output:
//       4
//       3
Module Example
   Public Sub Main()
      Dim searchString As String = Chrw(&h00AD) + "m"
      Dim s1 As String = "ani" + ChrW(&h00AD) + "mal"
      Dim s2 As String = "animal"

      Console.WriteLine(s1.IndexOf(searchString, 2))
      Console.WriteLine(s2.IndexOf(searchString, 2))
   End Sub
End Module
' The example displays the following output:
'       4
'       3

Hinweise für Aufrufer

Wie in den bewährten Methoden für die Verwendung von Zeichenfolgen erläutert, wird empfohlen, das Aufrufen von Zeichenfolgenvergleichsmethoden zu vermeiden, die Standardwerte ersetzen und stattdessen Methoden aufrufen, die Parameter explizit angeben müssen. Um den ersten Index einer Teilzeichenfolge zu finden, die nach einer bestimmten Zeichenposition mithilfe der Vergleichsregeln der aktuellen Kultur auftritt, signalisieren Sie die Absicht explizit, indem Sie die IndexOf(String, Int32, StringComparison) Methodenüberladung mit einem Wert für CurrentCulture den comparisonType Parameter aufrufen. Wenn Sie keinen sprachlichen Vergleich benötigen, sollten Sie die Verwendung in Betracht ziehen Ordinal.

Weitere Informationen

Gilt für:

IndexOf(Char, StringComparison)

Quelle:
String.Searching.cs
Quelle:
String.Searching.cs
Quelle:
String.Searching.cs
Quelle:
String.Searching.cs

Meldet den nullbasierten Index des ersten Vorkommens des angegebenen Unicode-Zeichens in dieser Zeichenfolge. Ein Parameter gibt den Suchtyp an, der für das angegebene Zeichen verwendet werden soll.

public:
 int IndexOf(char value, StringComparison comparisonType);
public int IndexOf(char value, StringComparison comparisonType);
member this.IndexOf : char * StringComparison -> int
Public Function IndexOf (value As Char, comparisonType As StringComparison) As Integer

Parameter

value
Char

Das zu suchende Zeichen.

comparisonType
StringComparison

Ein Enumerationswert, der die Regeln für die Suche angibt.

Gibt zurück

Der nullbasierte Index, wenn value dieses Zeichen gefunden wird, oder -1, wenn das nicht der Fehler ist.

Ausnahmen

comparisonType ist kein gültiger StringComparison Wert.

Hinweise

Die Indexnummerierung beginnt mit Null.

Der comparisonType Parameter ist ein StringComparison Enumerationsmememm, der angibt, ob die Suche nach dem value Argument die aktuelle oder invariante Kultur verwendet, groß- oder kleinschreibungsempfindlich ist oder Wort- oder Ordinalvergleichsregeln verwendet.

Gilt für:

IndexOf(Char, Int32)

Quelle:
String.Searching.cs
Quelle:
String.Searching.cs
Quelle:
String.Searching.cs
Quelle:
String.Searching.cs

Meldet den nullbasierten Index des ersten Vorkommens des angegebenen Unicode-Zeichens in dieser Zeichenfolge. Die Suche beginnt an einer angegebenen Zeichenposition.

public:
 int IndexOf(char value, int startIndex);
public int IndexOf(char value, int startIndex);
member this.IndexOf : char * int -> int
Public Function IndexOf (value As Char, startIndex As Integer) As Integer

Parameter

value
Char

Ein Unicode-Zeichen, das gesucht werden soll.

startIndex
Int32

Die Startposition der Suche.

Gibt zurück

Die nullbasierte Indexposition value von Anfang der Zeichenfolge, wenn dieses Zeichen gefunden wird, oder -1, wenn das nicht der Fehler ist.

Ausnahmen

startIndex ist kleiner als 0 (Null) oder größer als die Länge der Zeichenfolge.

Beispiele

Im folgenden Beispiel wird die IndexOf Methode veranschaulicht.

string br1 = "0----+----1----+----2----+----3----+----4----+----5----+----6----+---";
string br2 = "012345678901234567890123456789012345678901234567890123456789012345678";
string str = "Now is the time for all good men to come to the aid of their country.";
int start;
int at;

Console.WriteLine();
Console.WriteLine("All occurrences of 't' from position 0 to {0}.", str.Length-1);
Console.WriteLine("{1}{0}{2}{0}{3}{0}", Environment.NewLine, br1, br2, str);
Console.Write("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;
    Console.Write("{0} ", at);
    start = at+1;
}
Console.WriteLine();

/*
This example produces the following results:

All occurrences of 't' from position 0 to 68.
0----+----1----+----2----+----3----+----4----+----5----+----6----+---
012345678901234567890123456789012345678901234567890123456789012345678
Now is the time for all good men to come to the aid of their country.

The letter 't' occurs at position(s): 7 11 33 41 44 55 65

*/
let br1 = "0----+----1----+----2----+----3----+----4----+----5----+----6----+---"
let br2 = "012345678901234567890123456789012345678901234567890123456789012345678"
let str = "Now is the time for all good men to come to the aid of their country."

printfn ""
printfn $"All occurrences of 't' from position 0 to {str.Length - 1}."
printfn $"{br1}{Environment.NewLine}{br2}{Environment.NewLine}{str}{Environment.NewLine}"
printf "The letter 't' occurs at position(s): "

let mutable at = 0
let mutable start = 0
let mutable broken = false
while not broken && (start < str.Length) && (at > -1) do
    at <- str.IndexOf('t', start)
    if at = -1 then broken <- true
    else
        printf $"{at} "
        start <- at + 1
    printfn ""

(*
This example produces the following results:

All occurrences of 't' from position 0 to 68.
0----+----1----+----2----+----3----+----4----+----5----+----6----+---
012345678901234567890123456789012345678901234567890123456789012345678
Now is the time for all good men to come to the aid of their country.

The letter 't' occurs at position(s): 7 11 33 41 44 55 65

*)
' Sample for String.IndexOf(Char, Int32)

Module Sample
    Sub Main()

        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

        Console.WriteLine()
        Console.WriteLine("All occurrences of 't' from position 0 to {0}.", str.Length - 1)
        Console.WriteLine("{1}{0}{2}{0}{3}{0}", Environment.NewLine, br1, br2, str)
        Console.Write("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
            Console.Write("{0} ", at)
            start = at + 1
        End While
        Console.WriteLine()
    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
'
'

Hinweise

Die Indexnummerierung beginnt mit 0. Der startIndex Parameter kann zwischen 0 und der Länge der Zeichenfolgeninstanz liegen. Entspricht startIndex der Länge der Zeichenfolgeninstanz, gibt die Methode -1 zurück.

Die Suche reicht von startIndex bis zum Ende der Zeichenfolge.

Diese Methode führt eine Ordnungssuche (kulturunempfindlich) durch, bei der ein Zeichen nur dann als Äquivalent zu einem anderen Zeichen betrachtet wird, wenn ihre Unicode-Skalarwerte identisch sind. Verwenden Sie zum Ausführen einer kultursensitiven Suche die Methode, bei der CompareInfo.IndexOf ein Unicode-Skalarwert, der ein vorkompiliertes Zeichen darstellt, z. B. die Ligatur "Æ" (U+00C6), je nach Kultur als gleichwertig angesehen werden kann.

Weitere Informationen

Gilt für:

IndexOf(Rune)

public:
 int IndexOf(System::Text::Rune value);
public int IndexOf(System.Text.Rune value);
member this.IndexOf : System.Text.Rune -> int
Public Function IndexOf (value As Rune) As Integer

Parameter

value
Rune

Gibt zurück

Gilt für:

IndexOf(String)

Quelle:
String.Searching.cs
Quelle:
String.Searching.cs
Quelle:
String.Searching.cs
Quelle:
String.Searching.cs

Meldet den nullbasierten Index des ersten Vorkommens der angegebenen Zeichenfolge in dieser Instanz.

public:
 int IndexOf(System::String ^ value);
public int IndexOf(string value);
member this.IndexOf : string -> int
Public Function IndexOf (value As String) As Integer

Parameter

value
String

Die Zeichenfolge, die gesucht werden soll.

Gibt zurück

Die nullbasierte Indexposition, wenn value diese Zeichenfolge gefunden wird, oder -1, wenn dies nicht der Fehler ist. Ist value dies der Wert , ist Emptyder Rückgabewert 0.

Ausnahmen

value ist null.

Beispiele

Im folgenden Beispiel wird nach dem "n" in "tier" gesucht. Da Zeichenfolgenindizes bei Null und nicht mit einer beginnen, gibt die IndexOf(String) Methode an, dass sich "n" an Position 1 befindet.

String str = "animal";
String toFind = "n";
int index = str.IndexOf("n");
Console.WriteLine("Found '{0}' in '{1}' at position {2}",
                toFind, str, index);

// The example displays the following output:
//        Found 'n' in 'animal' at position 1
open System

let str = "animal"
let toFind = "n"
let index = str.IndexOf "n"
printfn $"Found '{toFind}' in '{str}' at position {index}"

// The example displays the following output:
//        Found 'n' in 'animal' at position 1
Public Module Example
   Public Sub Main()
      Dim str As String = "animal"
      Dim toFind As String = "n"
      Dim index As Integer = str.IndexOf("n")
      Console.WriteLine("Found '{0}' in '{1}' at position {2}",
                        toFind, str, index)
   End Sub
End Module
' The example displays the following output:
'       Found 'n' in 'animal' at position 1

Im folgenden Beispiel wird die IndexOf Methode verwendet, um die Anfangsposition eines Tiernamens in einem Satz zu bestimmen. Anschließend wird diese Position verwendet, um ein Adjektiv einzufügen, das das Tier in den Satz beschreibt.

using System;

public class Example {
    public static void Main()
    {
        string animal1 = "fox";
        string animal2 = "dog";

        string strTarget = String.Format("The {0} jumps over the {1}.",
                                         animal1, animal2);

        Console.WriteLine("The original string is:{0}{1}{0}",
                          Environment.NewLine, strTarget);

        Console.Write("Enter an adjective (or group of adjectives) " +
                      "to describe the {0}: ==> ", animal1);
        string adj1 = Console.ReadLine();

        Console.Write("Enter an adjective (or group of adjectives) " +
                      "to describe the {0}: ==> ", animal2);
        string adj2 = Console.ReadLine();

        adj1 = adj1.Trim() + " ";
        adj2 = adj2.Trim() + " ";

        strTarget = strTarget.Insert(strTarget.IndexOf(animal1), adj1);
        strTarget = strTarget.Insert(strTarget.IndexOf(animal2), adj2);

        Console.WriteLine("{0}The final string is:{0}{1}",
                          Environment.NewLine, strTarget);
    }
}
// Output from the example might appear as follows:
//       The original string is:
//       The fox jumps over the dog.
//
//       Enter an adjective (or group of adjectives) to describe the fox: ==> bold
//       Enter an adjective (or group of adjectives) to describe the dog: ==> lazy
//
//       The final string is:
//       The bold fox jumps over the lazy dog.
open System

let animal1 = "fox"
let animal2 = "dog"

let strTarget = String.Format("The {0} jumps over the {1}.", animal1, animal2)

do
    printfn $"The original string is:{Environment.NewLine}{strTarget}{Environment.NewLine}"

    printf $"Enter an adjective (or group of adjectives) to describe the {animal1}: => "
    let adj1 = stdin.ReadLine()

    printf $"Enter an adjective (or group of adjectives) to describe the {animal2}: => "
    let adj2 = stdin.ReadLine()

    let adj1 = adj1.Trim() + " "
    let adj2 = adj2.Trim() + " "

    let strTarget = strTarget.Insert(strTarget.IndexOf animal1, adj1)
    let strTarget = strTarget.Insert(strTarget.IndexOf animal2, adj2)

    printfn $"{Environment.NewLine}The final string is:{strTarget}{Environment.NewLine}"
// Output from the example might appear as follows:
//       The original string is:
//       The fox jumps over the dog.
//
//       Enter an adjective (or group of adjectives) to describe the fox: => bold
//       Enter an adjective (or group of adjectives) to describe the dog: => lazy
//
//       The final string is:
//       The bold fox jumps over the lazy dog.
Public Class Example
    Public Shared Sub Main()
        Dim animal1 As String = "fox"
        Dim animal2 As String = "dog"
        Dim strTarget As String = String.Format("The {0} jumps over the {1}.", 
                                                animal1, animal2)
        
        Console.WriteLine("The original string is: {0}{1}{0}", 
                          Environment.NewLine, strTarget)
        
        Console.Write("Enter an adjective (or group of adjectives) " +
                      "to describe the {0}: ==> ", animal1)
        Dim adj1 As String = Console.ReadLine()
        
        Console.Write("Enter an adjective (or group of adjectives) " + 
                      "to describe the {0}: ==> ", animal2)
        Dim adj2 As String = Console.ReadLine()
        
        adj1 = adj1.Trim() + " "
        adj2 = adj2.Trim() + " "
        
        strTarget = strTarget.Insert(strTarget.IndexOf(animal1), adj1)
        strTarget = strTarget.Insert(strTarget.IndexOf(animal2), adj2)
        
        Console.WriteLine("{0}The final string is:{0}{1}", 
                          Environment.NewLine, strTarget)
    End Sub 
End Class 
' Output from the example might appear as follows:
'       The original string is:
'       The fox jumps over the dog.
'       
'       Enter an adjective (or group of adjectives) to describe the fox: ==> bold
'       Enter an adjective (or group of adjectives) to describe the dog: ==> lazy
'       
'       The final string is:
'       The bold fox jumps over the lazy dog.

Hinweise

Die Indexnummerierung beginnt mit Null.

Mit dieser Methode wird mithilfe der aktuellen Kultur eine Suche nach Wörtern (Groß-/Kleinschreibung und Kultursensitiv) durchgeführt. Die Suche beginnt mit der ersten Zeichenposition dieser Instanz und wird bis zur letzten Zeichenposition fortgesetzt.

Zeichensätze enthalten ignorierbare Zeichen, bei denen es sich um Zeichen handelt, die beim Durchführen eines sprachlichen oder kultursensitiven Vergleichs nicht berücksichtigt werden. Bei einer kultursensiblen Suche, wenn value sie ein ignorierbares Zeichen enthält, entspricht das Ergebnis der Suche mit dem entfernten Zeichen. Wenn value nur ein oder mehrere ignorierbare Zeichen bestehen, gibt die IndexOf(String) Methode immer 0 (Null) zurück, um anzugeben, dass die Übereinstimmung am Anfang der aktuellen Instanz gefunden wird. Im folgenden Beispiel wird die IndexOf(String) Methode verwendet, um drei Teilzeichenfolgen (einen weichen Bindestrich (U+00AD), einen weichen Bindestrich gefolgt von "n" und einen weichen Bindestrich gefolgt von "m") in zwei Zeichenfolgen zu finden. Nur eine der Zeichenfolgen enthält einen weichen Bindestrich. Wenn das Beispiel auf .NET Framework 4 oder höher ausgeführt wird, in jedem Fall, da der weiche Bindestrich ein ignorierbares Zeichen ist, entspricht das Ergebnis dem, wenn der weiche Bindestrich nicht enthalten valuewar. Wenn Sie nur nach einem weichen Bindestrich suchen, gibt die Methode 0 (null) zurück, um anzugeben, dass sie am Anfang der Zeichenfolge eine Übereinstimmung gefunden hat.

using System;

public class Example
{
    public static void Main()
    {
        string s1 = "ani\u00ADmal";
        string s2 = "animal";
      
        // Find the index of the soft hyphen.
        Console.WriteLine(s1.IndexOf("\u00AD"));
        Console.WriteLine(s2.IndexOf("\u00AD"));
      
        // Find the index of the soft hyphen followed by "n".
        Console.WriteLine(s1.IndexOf("\u00ADn"));
        Console.WriteLine(s2.IndexOf("\u00ADn"));
      
        // Find the index of the soft hyphen followed by "m".
        Console.WriteLine(s1.IndexOf("\u00ADm"));
        Console.WriteLine(s2.IndexOf("\u00ADm"));

        // The example displays the following output
        // if run under the .NET Framework 4 or later:
        //       0
        //       0
        //       1
        //       1
        //       4
        //       3
    }
}
let s1 = "ani\u00ADmal"
let s2 = "animal"

// Find the index of the soft hyphen.
printfn $"""{s1.IndexOf "\u00AD"}"""
printfn $"""{s2.IndexOf "\u00AD"}"""

// Find the index of the soft hyphen followed by "n".
printfn $"""{s1.IndexOf "\u00ADn"}"""
printfn $"""{s2.IndexOf "\u00ADn"}"""

// Find the index of the soft hyphen followed by "m".
printfn $"""{s1.IndexOf "\u00ADm"}"""
printfn $"""{s2.IndexOf "\u00ADm"}"""

// The example displays the following output
// if run under the .NET Framework 4 or later:
//       0
//       0
//       1
//       1
//       4
//       3
Module Example
   Public Sub Main()
      Dim softHyphen As String = ChrW(&h00AD)
      Dim s1 As String = "ani" + softHyphen + "mal"
      Dim s2 As String = "animal"
      
      ' Find the index of the soft hyphen.
      Console.WriteLine(s1.IndexOf(softHyphen))
      Console.WriteLine(s2.IndexOf(softHyphen))
      
      ' Find the index of the soft hyphen followed by "n".
      Console.WriteLine(s1.IndexOf(softHyphen + "n"))
      Console.WriteLine(s2.IndexOf(softHyphen + "n"))
      
      ' Find the index of the soft hyphen followed by "m".
      Console.WriteLine(s1.IndexOf(softHyphen + "m"))
      Console.WriteLine(s2.IndexOf(softHyphen + "m"))
   End Sub
End Module
' The example displays the following output 
' if run under the .NET Framework 4 or later:
'       0
'       0
'       1
'       1
'       4
'       3

Hinweise für Aufrufer

Wie in den bewährten Methoden für die Verwendung von Zeichenfolgen erläutert, wird empfohlen, das Aufrufen von Zeichenfolgenvergleichsmethoden zu vermeiden, die Standardwerte ersetzen und stattdessen Methoden aufrufen, die Parameter explizit angeben müssen. Um den ersten Index einer Teilzeichenfolge innerhalb einer Zeichenfolgeninstanz mithilfe der Vergleichsregeln der aktuellen Kultur zu finden, signalisieren Sie die Absicht explizit, indem Sie die IndexOf(String, StringComparison) Methodenüberladung mit einem Wert für den comparisonType Parameter CurrentCulture aufrufen. Wenn Sie keinen sprachlichen Vergleich benötigen, sollten Sie die Verwendung in Betracht ziehen Ordinal.

Weitere Informationen

Gilt für:

IndexOf(Rune, StringComparison)

public:
 int IndexOf(System::Text::Rune value, StringComparison comparisonType);
public int IndexOf(System.Text.Rune value, StringComparison comparisonType);
member this.IndexOf : System.Text.Rune * StringComparison -> int
Public Function IndexOf (value As Rune, comparisonType As StringComparison) As Integer

Parameter

value
Rune
comparisonType
StringComparison

Gibt zurück

Gilt für: