Modifica della combinazione di maiuscole e minuscole in .NETChanging Case in .NET

Quando si scrive un'applicazione che accetta input dall'utente non si può conoscere la combinazione di maiuscole e minuscole che verrà usata durante l'immissione dei dati.If you write an application that accepts input from a user, you can never be sure what case he or she will use to enter the data. Spesso è desiderabile che le la combinazione di maiuscole e minuscole nelle stringhe sia coerente, in particolare se le stringhe vengono visualizzate nell'interfaccia utente.Often, you want strings to be cased consistently, particularly if you are displaying them in the user interface. La tabella seguente descrive tre metodi per la modifica della combinazione di maiuscole e minuscole.The following table describes three case-changing methods. I primi due metodi forniscono un overload che accetta determinate impostazioni cultura.The first two methods provide an overload that accepts a culture.

Nome metodoMethod name UsaUse
String.ToUpper Converte tutti i caratteri di una stringa in lettere maiuscole.Converts all characters in a string to uppercase.
String.ToLower Converte tutti i caratteri di una stringa in lettere minuscole.Converts all characters in a string to lowercase.
TextInfo.ToTitleCase Converte una stringa nella combinazione con tutte le iniziali maiuscole.Converts a string to title case.

Avviso

Si noti che i metodi String.ToUpper e String.ToLower non vanno usati per convertire le stringhe a scopo di confronto o verifica dell'uguaglianza.Note that the String.ToUpper and String.ToLower methods should not be used to convert strings in order to compare them or test them for equality. Per altre informazioni, vedere la sezione Confronto di stringhe con una combinazione mista di maiuscole e minuscole.For more information, see the Comparing strings of mixed case section.

Confronto di stringhe con una combinazione mista di maiuscole e minuscoleComparing strings of mixed case

Per confrontare stringhe composte da una combinazione mista di maiuscole e minuscole allo scopo di determinarne l'ordinamento, chiamare uno degli overload del metodo String.CompareTo con un parametro comparisonType e quindi fornire un valore di StringComparison.CurrentCultureIgnoreCase, StringComparison.InvariantCultureIgnoreCase o StringComparison.OrdinalIgnoreCase per l'argomento comparisonType.To compare strings of mixed case to determine their ordering, call one of the overloads of the String.CompareTo method with a comparisonType parameter, and provide a value of either StringComparison.CurrentCultureIgnoreCase, StringComparison.InvariantCultureIgnoreCase, or StringComparison.OrdinalIgnoreCase for the comparisonType argument. Per eseguire un confronto usando impostazioni cultura diverse da quelle correnti, chiamare un overload del metodo String.CompareTo con un parametro culture e un parametro options e fornire un valore di CompareOptions.IgnoreCase come argomento options.For a comparison using a specific culture other than the current culture, call an overload of the String.CompareTo method with both a culture and options parameter, and provide a value of CompareOptions.IgnoreCase as the options argument.

Per confrontare stringhe in caratteri maiuscoli e minuscoli allo scopo di determinarne se sono uguali, chiamare uno degli overload del metodo String.Equals con un parametro comparisonType e quindi fornire un valore di StringComparison.CurrentCultureIgnoreCase, StringComparison.InvariantCultureIgnoreCase o StringComparison.OrdinalIgnoreCase per l'argomento comparisonType.To compare strings of mixed case to determine whether they are equal, their, call one of the overloads of the String.Equals method with a comparisonType parameter, and provide a value of either StringComparison.CurrentCultureIgnoreCase, StringComparison.InvariantCultureIgnoreCase, or StringComparison.OrdinalIgnoreCase for the comparisonType argument.

Per altre informazioni, vedere Best Practices for Using Strings (Procedure consigliate per l'uso di stringhe).For more information, see Best Practices for Using Strings.

ToUpperToUpper

Il metodo String.ToUpper converte tutti i caratteri di una stringa in lettere maiuscole.The String.ToUpper method changes all characters in a string to uppercase. L'esempio seguente converte la stringa "Hello World!"The following example converts the string "Hello World!" da caratteri maiuscoli e minuscoli in caratteri maiuscoli.from mixed case to uppercase.

string properString = "Hello World!";
Console.WriteLine(properString.ToUpper());
// This example displays the following output:
//       HELLO WORLD!
Dim MyString As String = "Hello World!"
Console.WriteLine(MyString.ToUpper())
' This example displays the following output:
'       HELLO WORLD!

L'esempio precedente dipende dalle impostazioni cultura per impostazione predefinita; applica le convenzioni sulla combinazione di maiuscole e minuscole delle impostazioni cultura correnti.The preceding example is culture-sensitive by default; it applies the casing conventions of the current culture. Per eseguire una modifica di maiuscole e minuscole indipendente dalle impostazioni cultura o applicare le convenzioni sulla combinazione di maiuscole e minuscole di determinate impostazioni cultura, usare l'overload del metodo String.ToUpper(CultureInfo) e fornire il valore CultureInfo.InvariantCulture o un oggetto System.Globalization.CultureInfo che rappresenti le impostazioni cultura specificate nel parametro culture.To perform a culture-insensitive case change or to apply the casing conventions of a particular culture, use the String.ToUpper(CultureInfo) method overload and supply a value of CultureInfo.InvariantCulture or a System.Globalization.CultureInfo object that represents the specified culture to the culture parameter. Per un esempio in cui viene illustrato l'uso del metodo ToUpper per eseguire una modifica della combinazione di maiuscole e minuscole indipendente dalle impostazioni cultura, vedere Esecuzione di modifiche di maiuscole e minuscole indipendenti dalle impostazioni cultura.For an example that demonstrates how to use the ToUpper method to perform a culture-insensitive case change, see Performing Culture-Insensitive Case Changes.

ToLowerToLower

Il metodo String.ToLower è simile al precedente, con la differenza che converte tutti i caratteri di una stringa in lettere minuscole.The String.ToLower method is similar to the previous method, but instead converts all the characters in a string to lowercase. L'esempio seguente converte la stringa "Hello World!"The following example converts the string "Hello World!" in caratteri minuscoli.to lowercase.

string properString = "Hello World!";
Console.WriteLine(properString.ToLower());
// This example displays the following output:
//       hello world!
Dim MyString As String = "Hello World!"
Console.WriteLine(MyString.ToLower())
' This example displays the following output:
'       hello world!

L'esempio precedente dipende dalle impostazioni cultura per impostazione predefinita; applica le convenzioni sulla combinazione di maiuscole e minuscole delle impostazioni cultura correnti.The preceding example is culture-sensitive by default; it applies the casing conventions of the current culture. Per eseguire una modifica di maiuscole e minuscole indipendente dalle impostazioni cultura o applicare le convenzioni sulla combinazione di maiuscole e minuscole di determinate impostazioni cultura, usare l'overload del metodo String.ToLower(CultureInfo) e fornire il valore CultureInfo.InvariantCulture o un oggetto System.Globalization.CultureInfo che rappresenti le impostazioni cultura specificate nel parametro culture.To perform a culture-insensitive case change or to apply the casing conventions of a particular culture, use the String.ToLower(CultureInfo) method overload and supply a value of CultureInfo.InvariantCulture or a System.Globalization.CultureInfo object that represents the specified culture to the culture parameter. Per un esempio in cui viene illustrato l'uso del metodo ToLower(CultureInfo) per eseguire una modifica della combinazione di maiuscole e minuscole indipendente dalle impostazioni cultura, vedere Esecuzione di modifiche di maiuscole e minuscole indipendenti dalle impostazioni cultura.For an example that demonstrates how to use the ToLower(CultureInfo) method to perform a culture-insensitive case change, see Performing Culture-Insensitive Case Changes.

ToTitleCaseToTitleCase

Il metodo TextInfo.ToTitleCase converte il primo carattere di ogni parola in maiuscolo e i caratteri rimanenti in minuscolo.The TextInfo.ToTitleCase converts the first character of each word to uppercase and the remaining characters to lowercase. Le parole interamente in maiuscolo, tuttavia, vengono considerate acronimi e non vengono convertite.However, words that are entirely uppercase are assumed to be acronyms and are not converted.

Il metodo TextInfo.ToTitleCase è basato sulle impostazioni cultura, vale a dire che usa le convenzioni sulla combinazione di maiuscole e minuscole di determinate impostazioni cultura.The TextInfo.ToTitleCase method is culture-sensitive; that is, it uses the casing conventions of a particular culture. Per chiamare il metodo è innanzitutto necessario recuperare l'oggetto TextInfo, che rappresenta le convenzioni sulla combinazione di maiuscole e minuscole di determinate impostazioni cultura, dalla proprietà CultureInfo.TextInfo di specifiche impostazioni cultura.In order to call the method, you first retrieve the TextInfo object that represents the casing conventions of the particular culture from the CultureInfo.TextInfo property of a particular culture.

Nell'esempio, ogni stringa di una matrice viene passata al metodo TextInfo.ToTitleCase.The following example passes each string in an array to the TextInfo.ToTitleCase method. Nelle stringhe sono incluse le stringhe corrette dei titoli e gli acronimi.The strings include proper title strings as well as acronyms. Le stringhe vengono convertite in maiuscole usando le convenzioni delle impostazioni cultura Inglese (Stati Uniti).The strings are converted to title case by using the casing conventions of the English (United States) culture.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string[] values = { "a tale of two cities", "gROWL to the rescue",
                          "inside the US government", "sports and MLB baseball",
                          "The Return of Sherlock Holmes", "UNICEF and children"};
                                 
      TextInfo ti = CultureInfo.CurrentCulture.TextInfo;
      foreach (var value in values)
         Console.WriteLine("{0} --> {1}", value, ti.ToTitleCase(value));
   }
}
// The example displays the following output:
//    a tale of two cities --> A Tale Of Two Cities
//    gROWL to the rescue --> Growl To The Rescue
//    inside the US government --> Inside The US Government
//    sports and MLB baseball --> Sports And MLB Baseball
//    The Return of Sherlock Holmes --> The Return Of Sherlock Holmes
//    UNICEF and children --> UNICEF And Children
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim values() As String = { "a tale of two cities", "gROWL to the rescue",
                                 "inside the US government", "sports and MLB baseball",
                                 "The Return of Sherlock Holmes", "UNICEF and children"}
                                 
      Dim ti As TextInfo = CultureInfo.CurrentCulture.TextInfo
      For Each value In values
         Console.WriteLine("{0} --> {1}", value, ti.ToTitleCase(value))
      Next
   End Sub
End Module
' The example displays the following output:
'    a tale of two cities --> A Tale Of Two Cities
'    gROWL to the rescue --> Growl To The Rescue
'    inside the US government --> Inside The US Government
'    sports and MLB baseball --> Sports And MLB Baseball
'    The Return of Sherlock Holmes --> The Return Of Sherlock Holmes
'    UNICEF and children --> UNICEF And Children

Si noti che, sebbene sia dipendente dalle impostazioni cultura, il metodo TextInfo.ToTitleCase non fornisce regole sull'uso di maiuscole e minuscole linguisticamente corrette.Note that although it is culture-sensitive, the TextInfo.ToTitleCase method does not provide linguistically correct casing rules. Ad esempio, nell'esempio precedente, il metodo converte "a tale of two cities" in "A Tale Of Two Cities".For instance, in the previous example, the method converts "a tale of two cities" to "A Tale Of Two Cities". Tuttavia, la combinazione linguisticamente corretta per le impostazioni cultura Inglese (Stati Uniti) è "A Tale of Two Cities."However, the linguistically correct title casing for the en-US culture is "A Tale of Two Cities."

Vedere ancheSee also