1

C# で C# コードを生成していますが、文字列を適切な C# クラスとしてフォーマットしたいと考えています。それを行うライブラリはありますか?禁止文字、PascalCase 文字列 ("_" の間) などを置き換える必要があります。

パラメータ「ClassName」を T4 テンプレートに渡していますが、そのパラメータを適切な C# クラス名に変換したいと考えています。

元。

与えられた:

ClassName = "This_is_MY_CLASS Name"

次に:私は取得したいです

ProperClassName = "This_Is_My_Class_Name" // or "This_Is_My_Classname", both would be acceptable.
4

2 に答える 2

1

おそらくTextInfoクラスを使用できます

string className = "This_is_MY_CLASS Name";

string newName = new CultureInfo(CultureInfo.CurrentCulture.LCID, false).TextInfo.ToTitleCase(className .ToLower()).Replace(" ","_");

戻り値:"This_Is_My_Class_Name"

ほとんどの不正な文字を削除したい場合は、次のようにすることができます

    string className = "This_is_MY_CLASS Name/with<silly|chars";
    var invalid = System.IO.Path.GetInvalidFileNameChars().Concat(new char[]{' '});

    string newName = new string( new CultureInfo(CultureInfo.CurrentCulture.LCID, false)
        .TextInfo.ToTitleCase(className.ToLower())
        .Select(s => invalid.Contains(s) ? '_' : s).ToArray());

   // returns: "This_Is_My_Class_Name_With_Silly_Chars"
于 2013-01-09T08:53:58.183 に答える
0

このメソッドには多少の作業が必要になるかもしれませToTitleCaseんが、不正な文字やその他のものを削除するには、自分で何かを作成する必要があります。.net フレームワーク内では、すぐに使用できるものは何もありません。

于 2013-01-09T08:51:01.480 に答える