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

 

Confronta le sottostringhe di due oggetti String specificati, ignorando o rispettando la distinzione tra maiuscole e minuscole e usando le informazioni specifiche delle 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
Type: System.String

Prima stringa da usare nel confronto.

indexA
Type: System.Int32

Posizione della sottostringa all'interno di strA.

strB
Type: System.String

Seconda stringa da usare nel confronto.

indexB
Type: System.Int32

Posizione della sottostringa all'interno di strB.

length
Type: System.Int32

Numero massimo di caratteri contenuti nelle sottostringhe da confrontare.

ignoreCase
Type: System.Boolean

true per ignorare la distinzione tra maiuscole e minuscole durante il confronto; in caso contrario, false.

culture
Type: System.Globalization.CultureInfo

Oggetto che fornisce informazioni di confronto specifiche delle impostazioni cultura.

Valore restituito

Type: System.Int32

Intero che indica la relazione lessicale tra i due termini di confronto.

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
ArgumentOutOfRangeException

indexA è maggiore di strALength.

-oppure-

indexB è maggiore di strBLength.

-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 in indexAe in strB in indexB. Entrambi indexA e indexB sono in base zero, ovvero il primo carattere in strA e strB si trova nella posizione zero, 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 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. Le impostazioni cultura, ad esempio, possibile specificare che alcune combinazioni di caratteri siano considerate come un singolo carattere o caratteri maiuscoli e minuscoli da confrontare in modo che l'ordinamento di un carattere dipende o i caratteri che precedono o seguono.

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

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

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

Quando i confronti vengono applicati le regole specifiche delle impostazioni cultura di maiuscole e minuscole, possono verificarsi risultati imprevisti. In lingua turca, ad esempio, il nell'esempio seguente restituirà un risultato errato poiché il file system in turco non utilizza regole linguistiche maiuscole e minuscole per la lettera "i" in "file".

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

Confrontare il nome del percorso "file" mediante un confronto ordinale. Il codice corretto per eseguire questa operazione è il seguente:

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 Compare(String, Int32, String, Int32, Int32, Boolean, CultureInfo) metodo non prende in considerazione tali caratteri quando si esegue un confronto linguistico o dipendente dalla lingua. Per riconoscere i caratteri ignorabili il confronto, chiamare il Compare(String, Int32, String, Int32, Int32, CultureInfo, CompareOptions) metodo e fornire un valore CompareOptions.Ordinal o CompareOptions.OrdinalIgnoreCase per il options parametro.

L'esempio seguente confronta le sottostringhe di due usando diverse impostazioni cultura e ignorare la distinzione tra delle sottostringhe. La scelta della lingua influisce sul modo in cui la lettera "I" viene confrontato.

// 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
Disponibile da 1.1
Torna all'inizio
Mostra: