2015-10-19 67 views
0

我有一些代码可以完成我想要的功能,但是我想知道是否有更快的方法来实现我想要的功能。C#大写首字母的字符串 - 更有效的方法?

用户将输入他们的名字,我想,以确保他们的名字是接近这个格式可能:

  • 约翰>约翰
  • 朱莉>朱莉

我代码:

// First Name 
s_in_GetUserFirstName = s_in_GetUserFirstName.ToLower(); 
c_in_UserFirstNameFirstChar = s_in_GetUserFirstName[0]; 
s_in_UserFirstNameFirstChar = c_in_UserFirstNameFirstChar.ToString().ToUpper(); 
s_in_GetUserFirstName = s_in_GetUserFirstName.Remove(0, 1); 
s_in_GetUserFirstName = s_in_UserFirstNameFirstChar + s_in_GetUserFirstName; 
// Last Name 
s_in_GetUserLastName = s_in_GetUserLastName.ToLower(); 
c_in_UserLastNameFirstChar = s_in_GetUserLastName[0]; 
s_in_UserLastNameFirstChar = c_in_UserLastNameFirstChar.ToString().ToUpper(); 
s_in_GetUserLastName = s_in_GetUserLastName.Remove(0, 1); 
s_in_GetUserLastName = s_in_UserLastNameFirstChar + s_in_GetUserLastName; 

我所做的是将字符串分成两部分,第一个字符和休息。我大写第一个字符并从字符串中删除该字符。然后我将字符串合并成一个。

+1

建议看看http://stackoverflow.com/a/1206029/563532 - 此格式通常称为'标题案例'或'正确案例' – Rob

+0

这是完美的,谢谢! – benfleuty

+0

LINQ:这将工作太:) 变种STR = 小号 .ToCharArray() 。选择((C,I)=>我== 0 Char.ToUpper(C):Char.ToLower(c)中) 。选择(c => c.ToString()) .Aggregate((c,n)=> c + n) ; – ipavlu

回答