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)

 

Confronta le sottostringhe di due oggetti String specificati e restituisce un intero che indica la relativa posizione 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
)

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.

Valore restituito

Type: System.Int32

Intero con segno a 32 bit che indica la relazione lessicale tra i due termini del 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-

indexA o indexB è null e length è maggiore di zero.

Avviare le sottostringhe da confrontare in strA in indexA e strB in indexB. Entrambi indexA e indexB sono in base zero, ovvero il primo carattere in strA e strB alla posizione zero. 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.

Per ottenere informazioni specifiche delle impostazioni cultura, ad esempio le regole di maiuscole e minuscole e l'ordine alfabetico dei singoli caratteri, il confronto utilizza le impostazioni cultura correnti. 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.

System_CAPS_warningAvviso

Quando si confrontano stringhe, è necessario chiamare il Compare(String, Int32, String, Int32, Int32, StringComparison) metodo, che richiede di specificare in modo esplicito il tipo di confronto di stringhe che utilizza il metodo. Per altre informazioni, vedere Procedure consigliate per l'utilizzo di stringhe in .NET Framework.

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) 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 ilCompare(String, Int32, String, Int32, Int32, StringComparison) metodo e fornire un valore CompareOptions.Ordinal o CompareOptions.OrdinalIgnoreCase per il comparisonType parametro.

Nell'esempio seguente confronta le sottostringhe di due.

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

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

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

str1 = 'machine', str2 = 'device'
Substring 'ch' in 'machine' is less than substring 'de' in 'device'.
*/

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 1.1
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: