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.Compare (String, Int32, String, Int32, Int32, CultureInfo, CompareOptions)

 

Confronta le sottostringhe di due oggetti String specificati, usando le opzioni di confronto specificate e le informazioni specifiche delle impostazioni cultura per influenzare il confronto, e restituisce un intero che indica la relazione reciproca tra le due sottostringhe nell'ordinamento.

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

public static int Compare(
	string strA,
	int indexA,
	string strB,
	int indexB,
	int length,
	CultureInfo culture,
	CompareOptions options
)

Parametri

strA
Type: System.String

Prima stringa da usare nel confronto.

indexA
Type: System.Int32

Posizione iniziale della sottostringa all'interno di strA.

strB
Type: System.String

Seconda stringa da usare nel confronto.

indexB
Type: System.Int32

Posizione iniziale della sottostringa all'interno di strB.

length
Type: System.Int32

Numero massimo di caratteri contenuti nelle sottostringhe da confrontare.

culture
Type: System.Globalization.CultureInfo

Oggetto che fornisce informazioni di confronto specifiche delle impostazioni cultura.

options
Type: System.Globalization.CompareOptions

Opzioni da usare durante l'esecuzione del confronto (ad esempio, per ignorare la distinzione tra maiuscole e minuscole o i simboli).

Valore restituito

Type: System.Int32

Intero che indica la relazione lessicale tra le due sottostringhe, come illustrato nella tabella seguente.

Valore

Condizione

Minore di zero

La sottostringa in strA precede la sottostringa in strB nell'ordinamento.

Zero

Le sottostringhe si trovano nella stessa posizione nell'ordinamento oppure length è zero.

Maggiore di zero

La sottostringa in strA segue la sottostringa in strB nell'ordinamento.

Exception Condition
ArgumentException

options non è un valore di CompareOptions.

ArgumentOutOfRangeException

indexA è maggiore di strA.Length.

-oppure-

indexB è maggiore di strB.Length.

-oppure-

indexA, indexB o length è negativo.

-oppure-

strA o strB è null e length è maggiore di zero.

ArgumentNullException

culture è null.

Avviare le sottostringhe da confrontare in strA posizione indexA e strB nella posizione indexB. La lunghezza della prima sottostringa è la lunghezza di strA meno indexA. La lunghezza della seconda sottostringa è la lunghezza di strB meno indexB.

Il numero di caratteri da confrontare è il minore tra le lunghezze delle due sottostringhe, e length. Il indexA, indexB, e length i parametri devono essere non negativi.

Nel confronto viene utilizzato il culture parametro per ottenere informazioni specifiche delle impostazioni cultura, ad esempio le regole di maiuscole e minuscole e l'ordine alfabetico dei singoli caratteri. Ad esempio, una determinata lingua è possibile specificare che alcune combinazioni di caratteri essere gestita come un singolo carattere che i caratteri maiuscoli e minuscoli essere confrontati in modo specifico o che l'ordinamento di un carattere dipende i caratteri che precedono o seguono.

System_CAPS_cautionAttenzione

Il Compare(String, Int32, String, Int32, Int32, CultureInfo, CompareOptions) metodo è progettato principalmente per l'utilizzo nelle operazioni di ordinamento alfabetico di ordinamento. Non deve essere utilizzato quando lo scopo principale della chiamata al metodo consiste nel determinare se le due sottostringhe sono equivalenti (ovvero, quando lo scopo della chiamata al metodo consiste nel verificare la presenza di un valore restituito pari a zero). Per determinare se due stringhe sono equivalenti, chiamare il Equals metodo.

Uno o entrambi strA e strB può essere null. Per definizione, qualsiasi stringa, inclusi String.Empty, risulta maggiore di un riferimento null e due riferimenti null risultano uguali tra loro.

Il confronto può essere ulteriormente specificato mediante il options parametro, che è costituito da uno o più membri del System.Globalization.CompareOptions enumerazione. Tuttavia, poiché lo scopo di questo metodo è eseguire un confronto tra stringhe con distinzione delle impostazioni cultura, il CompareOptions.Ordinal e CompareOptions.OrdinalIgnoreCase valori non hanno alcun effetto.

Il confronto termina quando viene rilevata una disuguaglianza o sono state confrontate entrambe le sottostringhe. Tuttavia, se le due stringhe risultano uguali alla fine di una stringa e l'altra stringa contiene caratteri rimanenti, la stringa con i caratteri rimanenti è considerata maggiore. Il valore restituito è il risultato dell'ultimo confronto eseguito.

Note per i chiamanti:

I set di caratteri includono caratteri ignorabili. Il Compare(String, Int32, String, Int32, Int32, CultureInfo, CompareOptions) metodo non prende in considerazione tali caratteri quando si esegue un confronto linguistico o dipendente dalla lingua. Per riconoscere i caratteri ignorabili il confronto, specificare un valore di CompareOptions.Ordinal o CompareOptions.OrdinalIgnoreCase per il options parametro.

L'esempio seguente usa il Compare(String, Int32, String, Int32, Int32, CultureInfo, CompareOptions) metodo per confrontare i cognomi di due persone. Vengono quindi elencati in ordine alfabetico.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string name1 = "Jack Smith";
      string name2 = "John Doe";

      // Get position of space character.
      int index1 = name1.IndexOf(" ");
      index1 = index1 < 0 ? 0 : index1--;

      int index2 = name2.IndexOf(" ");
      index1 = index1 < 0 ? 0 : index1--;

      int length = Math.Max(name1.Length, name2.Length);

      Console.WriteLine("Sorted alphabetically by last name:");
      if (String.Compare(name1, index1, name2, index2, length, 
                         new CultureInfo("en-US"), CompareOptions.IgnoreCase) < 0)
         Console.WriteLine("{0}\n{1}", name1, name2); 
      else
         Console.WriteLine("{0}\n{1}", name2, name1); 
   }
}
// The example displays the following output:
//       Sorted alphabetically by last name:
//       John Doe
//       Jack Smith

.NET Framework
Disponibile da 2.0
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Torna all'inizio
Mostra: