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, Boolean, CultureInfo)

Confronta sottostringhe di due oggetti String specificati, ignorando o rispettando la distinzione tra maiuscole e minuscole e utilizzando le informazioni specifiche sulle impostazioni cultura per influenzare il confronto, e restituisce un intero che ne indica la posizione relativa 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,
	bool ignoreCase,
	CultureInfo culture
)

Parametri

strA
Tipo: System.String
Prima stringa da utilizzare nel confronto.
indexA
Tipo: System.Int32
Posizione della sottostringa all'interno di strA.
strB
Tipo: System.String
Seconda stringa da utilizzare nel confronto.
indexB
Tipo: System.Int32
Posizione della sottostringa all'interno di strB.
length
Tipo: System.Int32
Numero massimo di caratteri contenuti nelle sottostringhe da confrontare.
ignoreCase
Tipo: System.Boolean
true per ignorare la distinzione tra maiuscole e minuscole durante il confronto; in caso contrario, false.
culture
Tipo: System.Globalization.CultureInfo
Oggetto che fornisce informazioni di confronto specifiche delle impostazioni cultura.

Valore restituito

Tipo: System.Int32
Intero che indica la relazione lessicale tra i due termini di confronto.

Valore

Condizione

Minore di zero

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

Zero

La lunghezza delle sottostringhe è uguale, ovvero il parametro length è zero.

Maggiore di zero

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

EccezioneCondizione
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 da indexA in strA e da indexB in strB. Sia indexA sia indexB sono in base zero, ovvero il primo carattere in strA e in strB si trova nella posizione zero e non nella posizione uno. La lunghezza della prima sottostringa è uguale alla lunghezza di strA meno indexA più uno. La lunghezza della seconda sottostringa è uguale alla lunghezza di strB meno indexB più uno.

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 è utilizzato il parametro culture per ottenere informazioni specifiche delle impostazioni cultura, come le regole relative all'utilizzo di maiuscole e minuscole e l'ordine alfabetico dei singoli caratteri. Per determinate impostazioni cultura, ad esempio, potrebbe essere specificato che alcune combinazioni di caratteri siano considerate come un carattere singolo o potrebbe essere prevista una particolare modalità di confronto per i caratteri maiuscoli e minuscoli oppure che il criterio di ordinamento di un carattere dipenda dal carattere da cui è preceduto o seguito.

Il confronto viene eseguito utilizzando le regole di ordinamento per parola. Per ulteriori informazioni sulle regole di ordinamento per parola, per stringa e ordinale, vedere System.Globalization.CompareOptions.

Uno o entrambi i termini di confronto possono essere null. Per definizione, qualsiasi stringa, compresa la stringa vuota (""), risulta maggiore di un riferimento null, mentre due riferimenti null risultano uguali tra loro.

Il confronto termina quando viene rilevata una disuguaglianza o quando entrambe le sottostringhe sono state confrontate. Se 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.

Le regole specifiche delle impostazioni cultura sull'utilizzo di maiuscole e minuscole possono influire sui confronti provocando risultati imprevisti. Nella lingua turca, ad esempio, l'esempio riportato di seguito restituirà un risultato errato dal momento che nel file system in questa lingua non sono applicate regole linguistiche sulla distinzione tra maiuscole e minuscole per la lettera "i" nella parola "file".


static bool IsFileURI(String path)
{
    return (String.Compare(path, 0, "file:", 0, 5, true) == 0);
}


Confrontare il nome del percorso con "file" utilizzando un confronto ordinale. Di seguito viene riportato un esempio di codice corretto per eseguire tale operazione.


static bool IsFileURI(String path)
{
    return (String.Compare(path, 0, "file:", 0, 5, StringComparison.OrdinalIgnoreCase) == 0);
}


Note per i chiamanti

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

Nell'esempio riportato di seguito vengono confrontate due sottostringhe utilizzando impostazioni cultura diverse e ignorando la distinzione fra maiuscole e minuscole delle sottostringhe. La scelta delle impostazioni cultura influisce sul modo in cui la lettera "I" viene confrontata.


// Sample for String.Compare(String, Int32, String, Int32, Int32, Boolean, CultureInfo)
using System;
using System.Globalization;

class Sample {
    public static void Main() {
//                 0123456
    String str1 = "MACHINE";
    String str2 = "machine";
    String str;
    int result;

    Console.WriteLine();
    Console.WriteLine("str1 = '{0}', str2 = '{1}'", str1, str2);
    Console.WriteLine("Ignore case, Turkish culture:");
    result = String.Compare(str1, 4, str2, 4, 2, true, new CultureInfo("tr-TR"));
    str = ((result < 0) ? "less than" : ((result > 0) ? "greater than" : "equal to"));
    Console.Write("Substring '{0}' in '{1}' is ", str1.Substring(4, 2), str1);
    Console.Write("{0} ", str);
    Console.WriteLine("substring '{0}' in '{1}'.", str2.Substring(4, 2), str2);

    Console.WriteLine();
    Console.WriteLine("Ignore case, invariant culture:");
    result = String.Compare(str1, 4, str2, 4, 2, true, CultureInfo.InvariantCulture);
    str = ((result < 0) ? "less than" : ((result > 0) ? "greater than" : "equal to"));
    Console.Write("Substring '{0}' in '{1}' is ", str1.Substring(4, 2), str1);
    Console.Write("{0} ", str);
    Console.WriteLine("substring '{0}' in '{1}'.", str2.Substring(4, 2), str2);
    }
}
/*
This example produces the following results:

str1 = 'MACHINE', str2 = 'machine'
Ignore case, Turkish culture:
Substring 'IN' in 'MACHINE' is less than substring 'in' in 'machine'.

Ignore case, invariant culture:
Substring 'IN' in 'MACHINE' is equal to substring 'in' in 'machine'.
*/


.NET Framework

Supportato in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

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:
© 2014 Microsoft