如何将c#中字符串中每个单词的第一个字母大写

Gri*_*zly 3 c# string char asp.net-mvc-5

我曾尝试研究"可能已经有你答案的问题",但由于大多数问题涉及不同的编程语言,所以他们都没有真正帮助过.

所以关于C#,特别是ASP.NET MVC,在我的Create动作中我有代码来大写字符串中第一个单词的第一个字符,但如果用户输入2个单词,则第二个单词的第一个字符保持小写.

这是我到目前为止控制器中的内容

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "ID,text,subcategory")] Activities codeAC)
{
    if (ModelState.IsValid)
    {
        char firstLetter = codeAC.text[0];

        if (char.IsLower(firstLetter))
        {
            codeAC.text = codeAC.text.First().ToString().ToUpper() + String.Join("", codeAC.text.Skip(1));
        }
Run Code Online (Sandbox Code Playgroud)

如何修改它,以便如果用户输入'test test2',保存到数据库中的结果将是'Test Test2',而不是'Test test2'

任何帮助表示赞赏.

suj*_*lil 9

这将有助于您:

 string inString = "test test2 test test2 test test2";
 TextInfo cultInfo = new CultureInfo("en-US", false).TextInfo;
 string output = cultInfo.ToTitleCase(inString);
 // Test Test2 Test Test2 Test Test2
Run Code Online (Sandbox Code Playgroud)

哪里CultureInfo属于System.Globalization.

注意cultInfo.ToTitleCase("some value"); 仅适用于具有所有小写字母的句子,请考虑一个示例input:: "this will be an EXAMPLE"然后上面的代码将其转换为"This Will Be An EXAMPLE".这意味着EXAMPLE仍然是资本.所以我们需要做的是,在执行此操作之前将整个字符串变为小写.所以输入将如下所示:

 string inString = "test test2 test test2 test test2";
Run Code Online (Sandbox Code Playgroud)