我在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.
答案 0 :(得分: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"
答案 1 :(得分:0)
也许ToTitleCase
方法会为你做一些工作,但是为了删除非法字符和其他东西,你必须自己写一些东西。在.net框架内,没有开箱即用的功能。