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, StringComparison)

 

Data di pubblicazione: ottobre 2016

Confronta sottostringhe di due oggetti String specificati usando le regole specificate 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,
	StringComparison comparisonType
)

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.

comparisonType
Type: System.StringComparison

Uno dei valori di enumerazione che specifica le regole da usare per il confronto.

Valore restituito

Type: System.Int32

Intero con segno a 32 bit 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

Si verificano le sottostringhe nella stessa posizione dell'ordinamento o length parametro è uguale a zero.

Maggiore di zero

Lunghezza della sottostringa in strA follllows 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.

ArgumentException

comparisonType non è un valore di StringComparison.

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 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.

Il comparisonType parametro indica se il confronto deve utilizzare le impostazioni cultura correnti o invarianti, rispettare o ignorare la distinzione tra i termini di confronto o utilizzare word (impostazioni cultura) o le regole di ordinamento (senza distinzione delle impostazioni cultura).

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. Tuttavia, se le due stringhe risultano uguali alla fine di una stringa e l'altra stringa contiene caratteri rimanenti, 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, StringComparison) 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 StringComparison.Ordinal o StringComparison.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 2.0
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: