String.IndexOfAny Metoda

Definicja

Raportuje indeks pierwszego wystąpienia w tym wystąpieniu dowolnego znaku w określonej tablicy znaków Unicode. Metoda zwraca wartość -1, jeśli znaki w tablicy nie znajdują się w tej instancji.

Przeciążenia

IndexOfAny(Char[])

Zgłasza zerowy indeks pierwszego wystąpienia w tym wystąpieniu dowolnego znaku w określonej tablicy znaków Unicode.

IndexOfAny(Char[], Int32)

Zgłasza zerowy indeks pierwszego wystąpienia w tym wystąpieniu dowolnego znaku w określonej tablicy znaków Unicode. Wyszukiwanie rozpoczyna się na określonej pozycji znaku.

IndexOfAny(Char[], Int32, Int32)

Zgłasza zerowy indeks pierwszego wystąpienia w tym wystąpieniu dowolnego znaku w określonej tablicy znaków Unicode. Wyszukiwanie rozpoczyna się od określonej pozycji znaku i sprawdza określoną liczbę pozycji znaków.

IndexOfAny(Char[])

Źródło:
String.Searching.cs
Źródło:
String.Searching.cs
Źródło:
String.Searching.cs

Zgłasza zerowy indeks pierwszego wystąpienia w tym wystąpieniu dowolnego znaku w określonej tablicy znaków Unicode.

C#
public int IndexOfAny (char[] anyOf);

Parametry

anyOf
Char[]

Tablica znaków Unicode, zawierająca jeden znak lub więcej do odszukania.

Zwraca

Pozycja indeksu zera pierwszego wystąpienia w tym wystąpieniu, w którym znaleziono dowolny znak; -1, jeśli nie znaleziono żadnego znaku anyOfanyOf .

Wyjątki

anyOf to null.

Przykłady

W poniższym przykładzie znajduje się pierwsza vowel w ciągu.

C#
using System;

public class Example
{
   public static void Main()
   {
      char[] chars = { 'a', 'e', 'i', 'o', 'u', 'y', 
                       'A', 'E', 'I', 'O', 'U', 'Y' };
      String s = "The long and winding road...";
      Console.WriteLine("The first vowel in \n   {0}\nis found at position {1}", 
                        s, s.IndexOfAny(chars) + 1);                         
   }
}
// The example displays the following output:
//       The first vowel in
//          The long and winding road...
//       is found at position 3

Uwagi

Indeks numerowania rozpoczyna się od zera.

Wyszukiwanie anyOf jest uwzględniane w wielkości liter. Jeśli anyOf jest pustą tablicą, metoda znajduje dopasowanie na początku ciągu (czyli na zero indeksu).

Ta metoda przeprowadza wyszukiwanie porządkowe (niewrażliwość na ustawienia kulturowe), gdzie znak jest uważany za równoważny innemu znakowi tylko wtedy, gdy ich wartości skalarne Unicode są takie same. Aby przeprowadzić wyszukiwanie wrażliwe na kulturę, użyj CompareInfo.IndexOf metody , w której wartość skalarna Unicode reprezentująca znak wstępnie skompilowany, taki jak ligatura "Æ" (U+00C6), może być traktowana jako odpowiednik dowolnego wystąpienia składników znaku w poprawnej kolejności, takich jak "AE" (U+0041, U+0045), w zależności od kultury.

Zobacz też

Dotyczy

.NET 9 i inne wersje
Produkt Wersje
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

IndexOfAny(Char[], Int32)

Źródło:
String.Searching.cs
Źródło:
String.Searching.cs
Źródło:
String.Searching.cs

Zgłasza zerowy indeks pierwszego wystąpienia w tym wystąpieniu dowolnego znaku w określonej tablicy znaków Unicode. Wyszukiwanie rozpoczyna się na określonej pozycji znaku.

C#
public int IndexOfAny (char[] anyOf, int startIndex);

Parametry

anyOf
Char[]

Tablica znaków Unicode, zawierająca jeden znak lub więcej do odszukania.

startIndex
Int32

Pozycja rozpoczęcia wyszukiwania.

Zwraca

Pozycja indeksu zera pierwszego wystąpienia w tym wystąpieniu, w którym znaleziono dowolny znak; -1, jeśli nie znaleziono żadnego znaku anyOfanyOf .

Wyjątki

anyOf to null.

startIndex jest ujemna.

-lub-

startIndex jest większa niż liczba znaków w tym wystąpieniu.

Przykłady

Poniższy przykład znajduje indeks wystąpienia dowolnego znaku ciągu "is" w podciąg innego ciągu.

C#
// Sample for String.IndexOfAny(Char[], 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;
    string target = "is";
    char[] anyOf = target.ToCharArray();

    start = str.Length/2;
    Console.WriteLine();
    Console.WriteLine("The first character occurrence from position {0} to {1}.",
                           start, str.Length-1);
    Console.WriteLine("{1}{0}{2}{0}{3}{0}", Environment.NewLine, br1, br2, str);
    Console.Write("A character in '{0}' occurs at position: ", target);

    at = str.IndexOfAny(anyOf, start);
    if (at > -1)
        Console.Write(at);
    else
        Console.Write("(not found)");
    Console.WriteLine();
    }
}
/*

The first character occurrence 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.

A character in 'is' occurs at position: 49

*/

Uwagi

Indeks numerowania rozpoczyna się od zera. Parametr startIndex może wahać się od 0 do jednego mniejszego niż długość wystąpienia ciągu.

Wyszukiwanie waha się od startIndex końca ciągu.

Wyszukiwanie anyOf jest uwzględniane w wielkości liter.

Ta metoda przeprowadza wyszukiwanie porządkowe (bez uwzględniania ustawień kulturowych), gdzie znak jest uważany za równoważny innemu znakowi tylko wtedy, gdy ich wartość skalarna Unicode jest taka sama. Aby przeprowadzić wyszukiwanie wrażliwe na kulturę, użyj CompareInfo.IndexOf metody , w której wartość skalarna Unicode reprezentująca znak wstępnie skompilowany, taki jak ligatura "Æ" (U+00C6), może być traktowana jako odpowiednik dowolnego wystąpienia składników znaku w poprawnej kolejności, takich jak "AE" (U+0041, U+0045), w zależności od kultury.

Zobacz też

Dotyczy

.NET 9 i inne wersje
Produkt Wersje
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

IndexOfAny(Char[], Int32, Int32)

Źródło:
String.Searching.cs
Źródło:
String.Searching.cs
Źródło:
String.Searching.cs

Zgłasza zerowy indeks pierwszego wystąpienia w tym wystąpieniu dowolnego znaku w określonej tablicy znaków Unicode. Wyszukiwanie rozpoczyna się od określonej pozycji znaku i sprawdza określoną liczbę pozycji znaków.

C#
public int IndexOfAny (char[] anyOf, int startIndex, int count);

Parametry

anyOf
Char[]

Tablica znaków Unicode, zawierająca jeden znak lub więcej do odszukania.

startIndex
Int32

Pozycja rozpoczęcia wyszukiwania.

count
Int32

Liczba pozycji znaku do zbadania.

Zwraca

Pozycja indeksu zera pierwszego wystąpienia w tym wystąpieniu, w którym znaleziono dowolny znak; -1, jeśli nie znaleziono żadnego znaku anyOfanyOf .

Wyjątki

anyOf to null.

count lub startIndex jest ujemny.

-lub-

count + startIndex jest większa niż liczba znaków w tym wystąpieniu.

Przykłady

Poniższy przykład znajduje indeks wystąpienia dowolnego znaku ciągu "aid" w podciągie innego ciągu.

C#
// Sample for String.IndexOfAny(Char[], 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 count;
    string target = "aid";
    char[] anyOf = target.ToCharArray();

    start = (str.Length-1)/3;
    count = (str.Length-1)/4;
    Console.WriteLine();
    Console.WriteLine("The first character occurrence from position {0} for {1} characters.", start, count);
    Console.WriteLine("{1}{0}{2}{0}{3}{0}", Environment.NewLine, br1, br2, str);
    Console.Write("A character in '{0}' occurs at position: ", target);

    at = str.IndexOfAny(anyOf, start, count);
    if (at > -1)
        Console.Write(at);
    else
        Console.Write("(not found)");
    Console.WriteLine();
    }
}
/*

The first character occurrence from position 22 for 16 characters.
0----+----1----+----2----+----3----+----4----+----5----+----6----+-
0123456789012345678901234567890123456789012345678901234567890123456
Now is the time for all good men to come to the aid of their party.

A character in 'aid' occurs at position: 27

*/

Uwagi

Wyszukiwanie zaczyna się od i startIndex kontynuuje do startIndex + count -1. Znak w lokalizacji startIndex + count nie jest uwzględniony w wyszukiwaniu.

Indeks numerowania rozpoczyna się od zera. Parametr startIndex może wahać się od 0 do jednego mniejszego niż długość wystąpienia ciągu.

Wyszukiwanie anyOf jest uwzględniane w wielkości liter.

Ta metoda przeprowadza wyszukiwanie porządkowe (bez uwzględniania ustawień kulturowych), gdzie znak jest uważany za równoważny innemu znakowi tylko wtedy, gdy ich wartość skalarna Unicode jest taka sama. Aby przeprowadzić wyszukiwanie wrażliwe na kulturę, użyj CompareInfo.IndexOf metody , w której wartość skalarna Unicode reprezentująca znak wstępnie skompilowany, taki jak ligatura "Æ" (U+00C6), może być traktowana jako odpowiednik dowolnego wystąpienia składników znaku w poprawnej kolejności, takich jak "AE" (U+0041, U+0045), w zależności od kultury.

Zobacz też

Dotyczy

.NET 9 i inne wersje
Produkt Wersje
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0