Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo String.IndexOf (String, StringComparison)

 

Data di pubblicazione: ottobre 2016

Restituisce l'indice in base zero della prima occorrenza della stringa specificata nell'oggetto String corrente. Un parametro specifica il tipo di ricerca da usare per la stringa specificata.

Spazio dei nomi:   System
Assembly:  mscorlib (in mscorlib.dll)

public int IndexOf(
	string value,
	StringComparison comparisonType
)

Parametri

value
Type: System.String

Stringa da cercare.

comparisonType
Type: System.StringComparison

Uno dei valori di enumerazione che specifica le regole di ricerca.

Valore restituito

Type: System.Int32

Posizione dell'indice del parametro value se tale stringa viene trovata; in caso contrario, -1. Se value è Empty, il valore restituito è 0.

Exception Condition
ArgumentNullException

value è null.

ArgumentException

comparisonType non è un valore valido di System.StringComparison.

Numerazione dell'indice inizia da zero.

Il comparisonType parametro consente di ricercare il value parametro utilizzando le impostazioni cultura correnti o invarianti, utilizzando una ricerca tra maiuscole e minuscole o maiuscole/minuscole e utilizzando regole di confronto ordinale o word.

Note per i chiamanti:

I set di caratteri includono caratteri ignorabili, ovvero caratteri che non sono considerati durante l'esecuzione di un confronto linguistico o dipendente dalle impostazioni cultura. In una ricerca dipendente dalle impostazioni cultura (ovvero se comparisonType non è StringComparison.Ordinal o StringComparison.OrdinalIgnoreCase), se value contiene un carattere ignorable, il risultato è equivalente alla ricerca con il carattere rimosso. Se value è composta solo da uno o più caratteri ignorabili, ilIndexOf(String, StringComparison)metodo restituisce sempre 0 (zero) per indicare che si trova la corrispondenza all'inizio dell'istanza corrente.

Nell'esempio seguente, il IndexOf(String, StringComparison) metodo viene utilizzato per individuare le sottostringhe di tre (un segno meno facoltativo (U + 00AD), un segno meno facoltativo seguito da "n" e un segno meno facoltativo seguito da "m") in due stringhe. Solo una delle stringhe contiene un segno meno facoltativo. Se viene eseguito l'esempio di .NET Framework 4 o versioni successive, poiché il segno meno facoltativo è un carattere ignorabile, una ricerca dipendente dalle impostazioni cultura restituisce lo stesso valore che verrebbe restituito se il segno meno non incluse nella stringa di ricerca. Una ricerca ordinale, tuttavia, correttamente individua il segno meno in un'unica stringa e segnala che è assente dalla seconda stringa.

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

Il seguente exampledemonstrates tre overload del IndexOf metodo che trova la prima occorrenza di una stringa all'interno di un'altra stringa utilizzando valori diversi del StringComparison enumerazione.

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

*/

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 2.0
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Windows Phone
Disponibile da 8.1
Torna all'inizio
Mostra: