1

すべてのリスト項目を TitleCase に変換しようとしています。TitleCase は簡単だと思っていたのですが、大文字と小文字で同じように動作しないようです。何か案は?これは、上下で機能するものです。

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

myList = myList.ConvertAll(x => x.ToUpper());
myList = myList.ConvertAll(x => x.ToLower());

しかし、これらのどちらも機能しません:

myList = myList.ConvertAll(x => x.ToTitleCase());
myList = myList.ConvertAll(x => x.TitleCase());
4

3 に答える 3

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();

出力:

foreach (string str in myList)
    Console.WriteLine(str);

結果:

Abc
Def
Def
Abc

編集:

次のように ConvetAll を使用できます。

myList =  myList.ConvertAll(r => currentCulture.TextInfo.ToTitleCase(r.ToLower()));
于 2012-12-18T06:51:31.887 に答える
1
 class Program
    {
        static void Main(string[] args)
        {

            List<string> myList = new List<string>() { "abc", "DEF", "Def", "aBC" };

            CultureInfo currentCulture = System.Threading.Thread.CurrentThread.CurrentCulture;
            myList=myList.ConvertAll(r => currentCulture.TextInfo.ToTitleCase(r.ToLower()));
            int i=0;
            myList.ForEach(delegate(string k)
            {
                 Console.WriteLine(k);
                 i++;
            });
            Console.ReadLine();
        }
    }
于 2012-12-18T07:07:29.610 に答える
1

はい、元の値が大文字の場合は、小文字にする必要があります。グローバリゼーション名前空間を追加する必要がある場合もあります。これを DropDownList_DataBound イベントで使用しました。

CultureInfo currentCulture = System.Threading.Thread.CurrentThread.CurrentCulture;        
foreach (ListItem li in DropDownList.Items)
{
     li.Text = currentCulture.TextInfo.ToTitleCase(li.Text.ToLower());
}
于 2014-04-02T17:16:58.980 に答える