(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

String.IndexOf-Methode (String, Int32, Int32)

Gibt den NULL-basierten Index des ersten Vorkommens der angegebenen Zeichenfolge in dieser Instanz an. Die Suche beginnt an einer angegebenen Zeichenposition, und es wird eine angegebene Anzahl von Zeichenpositionen überprüft.

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

public int IndexOf(
	string value,
	int startIndex,
	int count
)

Parameter

value
Typ: System.String
Die zu suchende Zeichenfolge.
startIndex
Typ: System.Int32
Die Anfangsposition der Suche.
count
Typ: System.Int32
Die Anzahl der zu überprüfenden Zeichenpositionen.

Rückgabewert

Typ: System.Int32
Die nullbasierte Indexposition von value, wenn diese Zeichenfolge gefunden wurde, andernfalls -1. Wenn valueString.Empty ist, wird startIndex zurückgegeben.

AusnahmeBedingung
ArgumentNullException

value ist null.

ArgumentOutOfRangeException

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.

Indexziffer geht von 0 (null) ab. Der startIndex-Parameter kann von 0 bis zu der Länge der Zeichenfolgeninstanz reichen.

Diese Methode führt eine Wortsuche (unter Berücksichtigung von Groß- und Kleinschreibung und der Kultur) unter Verwendung der aktuellen Kultur durch. Die Suche beginnt bei startIndex und endet bei startIndex + count -1. Das Zeichen bei startIndex + count ist nicht in der Suche enthalten.

Zeichensätze enthalten ignorierbare Zeichen, d. h. Zeichen, die bei der Durchführung eines linguistischen oder kulturabhängigen Vergleichs nicht berücksichtigt werden. Bei einer kulturabhängige Suche, bei der value ein ignorierbares Zeichen enthält, ist das Ergebnis das gleiche wie bei einer Suche ohne dieses Zeichen. Wenn value nur aus einem oder mehreren ignorierbaren Zeichen besteht, gibt die IndexOf(String, Int32, Int32)-Methode immer startIndex zurück, die die Zeichenposition ist, an der die Suche beginnt. Im folgenden Beispiel wird die Methode IndexOf(String, Int32, Int32) verwendet, um die Position eines weichgezeichneten Strichen (U+00AD) gefunden und einem "m", das in den dritten bis 6. Zeichenpositionen in beiden Zeichenfolgen beginnt. Nur eine der Zeichenfolgen enthält die erforderliche Teilzeichenfolge. Wenn das Beispiel auf .NET Framework 4 oder höher ausgeführt wird, da in beiden Fällen der weiche Bindestrich ein ignorierbares Zeichen ist, gibt die Methode den Index "m" in der Zeichenfolge zurück, wenn sie einen kulturabhängigen Vergleich ausführt. Beachten Sie, dass bei der ersten Zeichenfolge, die den bedingten Bindestrich gefolgt von einem "m" umfasst, die Methode den Index des bedingten Bindestrichs nicht zurückgeben kann, 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


Hinweise zu Aufrufern

Wie in Empfohlene Vorgehensweisen für die Verwendung von Zeichenfolgen in .NET Framework erklärt, empfiehlt es sich, zu vermeiden, Methoden für den Vergleich von Zeichenfolgen aufzurufen, die Standardwerte ersetzen, und stattdessen Methoden aufzurufen, für die ausdrücklich Parameter angegeben werden müssen. Um diesen Vorgang mit den Vergleichsregeln der aktuellen Kultur durchzuführen, rufen Sie die IndexOf(String, Int32, Int32, StringComparison)-Methodenüberladung mit dem Wert StringComparison.CurrentCulture für seinen comparisonType-Parameter auf.

Im folgenden Beispiel wird der Index aller Vorkommen der Zeichenfolge "he" in der Teilzeichenfolge einer anderen Zeichenfolge gesucht. Beachten Sie, dass die Anzahl von Zeichen, die durchsucht werden sollen, für jede Suchiteration neu berechnet werden muss.


// Sample for String.IndexOf(String, Int32, Int32)
using System;

class Sample {
    public static void Main() {

    string br1 = "0----+----1----+----2----+----3----+----4----+----5----+----6----+-";
    string br2 = "0123456789012345678901234567890123456789012345678901234567890123456";
    string str = "Now is the time for all good men to come to the aid of their party.";
    int start;
    int at;
    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 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

*/


.NET Framework

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Portable Klassenbibliothek

Unterstützt in: Portable Klassenbibliothek

.NET für Windows Store-Apps

Unterstützt in: Windows 8

.NET für Windows Phone-Apps

Unterstützt in: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft