Questa pagina è stata utile?
I suggerimenti relativi al contenuto di questa pagina sono importanti. Comunicaceli.
Altri suggerimenti?
1500 caratteri rimanenti
Esporta (0) Stampa
Espandi tutto
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale

Metodo String.Compare (String, Int32, String, Int32, Int32, CultureInfo, CompareOptions)

Confronta le sottostringhe di due oggetti String specificati, utilizzando 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
Tipo: System.String
Prima stringa da utilizzare nel confronto.
indexA
Tipo: System.Int32
Posizione iniziale della sottostringa all'interno di strA.
strB
Tipo: System.String
Seconda stringa da utilizzare nel confronto.
indexB
Tipo: System.Int32
Posizione iniziale della sottostringa all'interno di strB.
length
Tipo: System.Int32
Numero massimo di caratteri contenuti nelle sottostringhe da confrontare.
culture
Tipo: System.Globalization.CultureInfo
Oggetto che fornisce informazioni di confronto specifiche delle impostazioni cultura.
options
Tipo: System.Globalization.CompareOptions
Opzioni da utilizzare durante l'esecuzione del confronto (ad esempio, per ignorare la distinzione tra maiuscole e minuscole o i simboli).

Valore restituito

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

Valore

Condizione

Minore di zero

La lunghezza della sottostringa nel parametro strA è minore della lunghezza della sottostringa nel parametro strB.

Zero

Le sottostringhe sono uguali oppure length è pari a zero.

Maggiore di zero

La lunghezza della sottostringa nel parametro strA è maggiore della lunghezza della sottostringa nel parametro strB.

EccezioneCondizione
ArgumentException

options non è 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.

Le sottostringhe da confrontare iniziano dalla posizione indexA nel parametro strA e dalla posizione indexB nel parametro strB. La lunghezza della prima sottostringa è uguale alla lunghezza di strA meno indexA. La lunghezza della seconda sottostringa è uguale alla lunghezza di strB meno indexB.

Il numero di caratteri fra cui eseguire il confronto corrisponde alla minore tra le lunghezze delle due sottostringhe e il parametro length. I parametri indexA, indexB e length non devono essere negativi.

Nel confronto viene utilizzato il parametro culture per ottenere le informazioni specifiche delle impostazioni cultura, quali ad esempio le regole relative all'utilizzo di maiuscole e minuscole e l'ordine alfabetico dei singoli caratteri. Per determinate impostazioni cultura, ad esempio, alcune combinazioni di caratteri potrebbero essere considerate come un carattere singolo oppure potrebbe essere prevista una particolare modalità di confronto per i caratteri maiuscoli e minuscoli oppure il criterio di ordinamento di un carattere potrebbe dipendere dai caratteri da cui è preceduto o seguito.

Nota di avvisoAttenzione

Il metodo Compare(String, Int32, String, Int32, Int32, CultureInfo, CompareOptions) è stato progettato principalmente per l'utilizzo in operazioni di ordinamento, anche di tipo alfabetico. Non deve essere utilizzato nei casi in cui lo scopo primario della chiamata al metodo sia determinare l'equivalenza di due sottostringhe, vale a dire verificare che un valore restituito sia pari a zero. Per stabilire se due stringhe sono equivalenti, chiamare il metodo Equals.

strA o strB, oppure entrambi, possono essere null. Per definizione qualsiasi stringa, compresa String.Empty, risulta maggiore di un riferimento null, mentre due riferimenti null risultano uguali tra loro.

Il confronto può essere ulteriormente specificato mediante il parametro options, costituito da uno o più membri dell'enumerazione System.Globalization.CompareOptions. Tuttavia, poiché lo scopo di questo metodo è effettuare un confronto tra stringhe dipendente dalle impostazioni cultura, i valori CompareOptions.Ordinal e CompareOptions.OrdinalIgnoreCase non hanno effetto.

Il confronto termina quando viene rilevata una disuguaglianza o quando entrambe le sottostringhe sono state confrontate. Se tuttavia le due stringhe risultano uguali alla fine di una delle due, ma nell'altra restano ancora caratteri, quest'ultima verrà considerata maggiore. Il valore restituito è il risultato dell'ultimo confronto eseguito.

Note per i chiamanti

I set di caratteri includono caratteri ignorabili. Il metodo Compare(String, Int32, String, Int32, Int32, CultureInfo, CompareOptions) non considera tali caratteri quando esegue un confronto dipendente dalla linguistica o dalle impostazioni cultura. Per riconoscere i caratteri ignorabili del confronto, fornire un valore CompareOptions.Ordinal o CompareOptions.OrdinalIgnoreCase per il parametro options.

Nell'esempio riportato di seguito viene utilizzato il metodo Compare(String, Int32, String, Int32, Int32, CultureInfo, CompareOptions) 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

Supportato in: 4.5.2, 4.5.1, 4.5, 4, 3.5 SP1, 3.0 SP2, 2.0 SP2

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

.NET per applicazioni Windows Phone

Supportato 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 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

Aggiunte alla community

AGGIUNGI
Mostra:
© 2015 Microsoft