2
我有一個叫做ProperCase的函數,它接受一個字符串,然後將每個單詞中的第一個字母轉換爲大寫。所以ProperCase(「約翰史密斯」)將會返回「約翰史密斯」。下面是代碼:使用LINQ和lambda表達式將字符串放入正確的情況
public string ProperCase(string input)
{
var retVal = string.Empty;
var words = input.Split(' ');
foreach (var word in words)
{
if (word.Length == 1)
{
retVal += word.ToUpper();
}
else if (word.Length > 1)
{
retVal += word.Substring(0, 1).ToUpper() + word.Substring(1).ToLower();
}
retVal += ' ';
}
if (retVal.Length > 0)
{
retVal = retVal.Substring(0, retVal.Length - 1);
}
return retVal;
}
此代碼workds完美,但我敢肯定,我可以用LINQ和lambda表達式做更優雅。有些人可以告訴我如何?
謝謝,非常完美!我添加了一個ToLower到lambda: word => textInfo.ToTitleCase(word.ToLower()) – 2010-04-09 21:01:50
這裏不必使用Linq。無論單詞數量多少,textInfo.ToTitleCase(輸入)都會執行相同的操作。 – SergioL 2011-06-02 20:09:06