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 回答