在c#代码中格式化适合c#的类名
本文关键字:格式化 代码 | 更新日期: 2023-09-27 17:51:01
我正在用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.
您可以使用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"
也许ToTitleCase
方法会为你做一些工作,但是为了删除非法字符和其他东西,你必须自己写一些东西。.net框架内没有现成的东西