将List中的元素转换为Title-Case?

Jea*_*agr 1 c# title-case list

我想将所有列表项转换为TitleCase.我认为TitleCase很简单,但它似乎与大写或小写不一样.有任何想法吗?这适用于上下:

列出myList = new List(){"abc","DEF","Def","aBC"};

myList = myList.ConvertAll(x => x.ToUpper());
myList = myList.ConvertAll(x => x.ToLower());
Run Code Online (Sandbox Code Playgroud)

但这些都不起作用:

myList = myList.ConvertAll(x => x.ToTitleCase());
myList = myList.ConvertAll(x => x.TitleCase());
Run Code Online (Sandbox Code Playgroud)

Hab*_*bib 5

使用TextInfo.ToTitleCase方法.

List<string> myList = new List<string>() { "abc", "DEF", "Def", "aBC" };
CultureInfo currentCulture =  System.Threading.Thread.CurrentThread.CurrentCulture;
myList = myList.Select(r=> currentCulture.TextInfo.ToTitleCase(r.ToLower())).ToList();
Run Code Online (Sandbox Code Playgroud)

输出:

foreach (string str in myList)
    Console.WriteLine(str);
Run Code Online (Sandbox Code Playgroud)

结果:

Abc
Def
Def
Abc
Run Code Online (Sandbox Code Playgroud)

编辑:

您可以使用ConvetAll:

myList =  myList.ConvertAll(r => currentCulture.TextInfo.ToTitleCase(r.ToLower()));
Run Code Online (Sandbox Code Playgroud)