2014-06-27 108 views
-3

我怎麼能輸出這個當我使用Visual Studio的C#替換和toupper大寫問題

這裏是我的代碼:

private void button1_Click(object sender, EventArgs e) 
{ 
    string input; 
    input = comboBox1.Text; 
    input = input.Replace("_", ""); 
    label1.Text = input.First().ToString().ToUpper() 
        + String.Join("", input.Skip(1));  
} 

輸出始終這個:

冷杉TNAME

+5

你有沒有輸入的例子? – Sayse

回答

2

如果輸入的是「FIRST_NAME」,那麼這個工程:

var text = "first_name"; 

text = String.Join("", 
    text 
     .Split('_') 
     .Where(x => !String.IsNullOrEmpty(x)) 
     .Select(x => new string(
      x 
       .Take(1) 
       .Select(c => char.ToUpperInvariant(c)) 
       .Concat(x.Skip(1)) 
       .ToArray()))); 
+0

如果它來自我的數據庫會怎麼樣? – Amped

+0

@ user3643111 - 你是什麼意思? – Enigmativity

0

這下面的代碼獲得的第一個字符(字符類型),輸入字符串,然後將它轉換爲字符串,並作出這樣的第一個字母大寫:

input.First().ToString() + ... 

在你的代碼中添加了emtpy串seporator的字符串的其餘部分與你的第一個字母下一個環節:

... + String.Join("", input.Skip(1)) 

所以,如果你想讓所有的第一個字母大寫,你應該使用由Enigmativity提供的LINQ。