2009-07-22 13 views

Antwort

31
string name = "HECHT, WILLIAM"; 
string s = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(name.ToLower()); 

(beachten Sie, es funktioniert nur geringer bis oberen, beginnend damit Klein)

+0

Ist das Ding drin? Oh mein. +1 –

+0

@Marc: Behandelt 'ToTitleCase()' "Peter O'Toole" und "Mary Jones-Smith" richtig? –

+0

@Grant: Peter braucht einen neuen Namen, Mary ist in Ordnung. –

0
public static string CamelCase(this string s) 
    { 
     if (String.IsNullOrEmpty(s)) 
      s = ""; 
     string phrase = ""; 
     string[] words = s.Split(' '); 
     foreach (string word in words) 
     { 
      if (word.Length > 1) 
       phrase += word.Substring(0, 1).ToUpper() + word.Substring(1).ToLower() + " "; 
      else 
       phrase += word.ToUpper() + " "; 

     } 
     return phrase.Trim(); 
    } 
+0

@TruthStands: Erzeugt nicht die korrekten Ergebnisse für "Peter O'Toole" und "Mary Smith-Jones". –

+0

Stimmt, aber es wäre nicht schwer, das zu beheben. – TruthStands

0

I Marcs Antwort gestimmt, aber dies wird auch funktionieren:

string s = Microsoft.VisualBasic.Strings.StrConv("HECHT, WILLIAM", VbStrConv.ProperCase,0); 

Sie müssen die entsprechenden Referenzen hinzufügen, aber ich bin mir ziemlich sicher, dass es auf allen oberen Eingängen funktioniert.

Verwandte Themen