2012-01-23 55 views
5

執行此操作的最佳方法是?C#字符串操作:從「TABLE_NAME」到「TableName」

試過這樣的事情:

public String FormatColumnName(String columnName) 
{ 
    String formatedColumnName = columnName.Replace('_', ' ').Trim(); 
    StringBuilder result = new StringBuilder(formatedColumnName); 
    result[0] = char.ToUpper(result[0]); 
    return result.ToString(); 
} 

沒有工作對我來說,也許有人可以給我我該怎麼做一個乾淨的解決方案。

回答

5

如何:

string result = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(
     columnName.Replace('_', ' ').Trim().ToLower()).Replace(" ",""); 

ToTitleCase變化「小寫的話」,以「小寫詞」(但不接觸大寫),因此需要ToLower - 那麼我們刪除空格與Replace

+0

這個我試過,結果是TABLENAME,我也嘗試過類似的東西之前,要麼沒有工作 – eMi

+0

@eMi我只是測試它,它工作正常;請刷新...(我編輯過) –

+0

我想它是正確的,但.Trim()不會刪除字符串中的'',所以應該替換空格。 –

5

String.Concat(columnName.Split('_').Select(s => s[0] + s.Substring(1).ToLower()))

+0

** + 1 **喜歡'LINQ' ... – gdoron

+0

+ 1,因爲這也工作太 – eMi

+0

@eMi,這不只是工作,這是很多更具可讀性。 ** **也許**效率更高 – gdoron

2
string str = "TABLE_NAME"; 

string str2 = string.Join("", str.Split('_').Select(p => char.ToUpper(p[0]) + p.Substring(1).ToLower())); 
+0

+ 1,因爲這也工作 – eMi