Megosztás a következőn keresztül:


Eset módosítása a .NET-ben

Ha olyan alkalmazást ír, amely fogad bemenetet egy felhasználótól, soha nem lehet biztos abban, hogy milyen esetet (felső vagy alsó) használnak az adatok megadásához. Gyakran azt szeretné, hogy a sztringek egységesen legyenek kiállítva, különösen akkor, ha a felhasználói felületen jeleníti meg őket. Az alábbi táblázat három esetváltoztatási módszert ismertet. Az első két módszer túlterhelést biztosít, amely elfogadja a kultúrát.

Metódus neve Használat
String.ToUpper A sztring összes karakterét nagybetűssé alakítja.
String.ToLower A sztring összes karakterét kisbetűssé alakítja.
TextInfo.ToTitleCase Sztringet címes esetté alakít át.

Figyelmeztetés

A String.ToUpper sztringek konvertálásához és String.ToLower a metódusok nem használhatók a sztringek összehasonlítására vagy az egyenlőség ellenőrzésére. További információkért lásd a vegyes esetszakasz sztringjeinek összehasonlítását.

Vegyes eset sztringjeinek összehasonlítása

Ha össze szeretné hasonlítani a vegyes eset sztringjeinek sorrendjét, hívja meg a String.CompareTo metódus egyik túlterhelését egy comparisonType paraméterrel, és adjon meg egy értéket , StringComparison.CurrentCultureIgnoreCaseStringComparison.InvariantCultureIgnoreCasevagy StringComparison.OrdinalIgnoreCase az comparisonType argumentumot. A jelenlegi kultúrától eltérő adott kultúrát használó összehasonlításhoz hívja meg a String.CompareTo metódus túlterhelését az a culture és options paraméterrel együtt, és adjon meg argumentumként options értéketCompareOptions.IgnoreCase.

A vegyes eset sztringjeinek összehasonlításához hívja meg a metódus egyik túlterhelését String.Equals egy comparisonType paraméterrel, és adjon meg egy értéket , StringComparison.CurrentCultureIgnoreCaseStringComparison.InvariantCultureIgnoreCasevagy StringComparison.OrdinalIgnoreCase az comparisonType argumentumot.

További információkért tekintse meg a sztringek használatának ajánlott eljárásait.

ToUpper Módszer

A String.ToUpper metódus nagybetűsre módosítja a sztring összes karakterét. Az alábbi példa a ""Helló világ!" alkalmazás!" sztringet konvertálja a vegyes esetből nagybetűssé.

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!

Az előző példa alapértelmezés szerint kulturális szempontból érzékeny; a jelenlegi kultúra casing konvencióit alkalmazza. A kultúra szempontjából nem érzéketlen esetek módosításához vagy egy adott kultúra burkolati konvencióinak alkalmazásához használja a String.ToUpper(CultureInfo) metódus túlterhelését, és adjon meg egy értéket CultureInfo.InvariantCulture vagy egy System.Globalization.CultureInfo objektumot, amely a megadott kultúrát jelöli a culture paraméternek. Egy példa, amely bemutatja, hogyan használhatja a metódust egy ToUpper kulturális érzéketlen eset módosítására, olvassa el a Kultúra érzéketlen esetmódosítások végrehajtása című témakört.

ToLower Módszer

A String.ToLower metódus hasonló az előző metódushoz, de a sztring összes karakterét kisbetűssé alakítja. Az alábbi példa a ""Helló világ!" alkalmazás!" sztringet kisbetűssé alakítja.

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!

Az előző példa alapértelmezés szerint kulturális szempontból érzékeny; a jelenlegi kultúra casing konvencióit alkalmazza. A kultúra szempontjából nem érzéketlen esetek módosításához vagy egy adott kultúra burkolati konvencióinak alkalmazásához használja a String.ToLower(CultureInfo) metódus túlterhelését, és adjon meg egy értéket CultureInfo.InvariantCulture vagy egy System.Globalization.CultureInfo objektumot, amely a megadott kultúrát jelöli a culture paraméternek. Egy példa, amely bemutatja, hogyan használhatja a metódust egy ToLower(CultureInfo) kulturális érzéketlen eset módosítására, olvassa el a Kultúra érzéketlen esetmódosítások végrehajtása című témakört.

ToTitleCase Módszer

Az TextInfo.ToTitleCase egyes szavak első karakterét nagybetűssé, a többi karaktert pedig kisbetűvé alakítja. A teljes egészében nagybetűs szavak azonban mozaikszavak, és nem lesznek konvertálva.

A TextInfo.ToTitleCase módszer kultúraérzékeny, vagyis egy adott kultúra burkolati konvencióit használja. A metódus meghívásához először lekéri az TextInfo adott kultúra burkolati konvencióit képviselő objektumot egy CultureInfo.TextInfo adott kultúra tulajdonságából.

Az alábbi példa egy tömb minden sztringét átadja a TextInfo.ToTitleCase metódusnak. A sztringek megfelelő címsztringeket és betűszókat tartalmaznak. A sztringek címes esetté alakulnak az angol (Egyesült Államok) kultúra casing konvencióinak használatával.

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

Vegye figyelembe, hogy bár kulturális szempontból érzékeny, a TextInfo.ToTitleCase módszer nem biztosít nyelvileg helyes burkolatszabályokat. Az előző példában például a metódus "két város meséjét" alakítja át "A Tale Of Two Cities" (Két város meséje) értékké. Az usa-beli kultúra nyelvileg helyes címe azonban "A Tale of Two Cities" (Két város meséje).

Lásd még