Python 在C语言中将字符串转换为合法类名#
我想做与此Python函数相同的事情,但使用C#。Python 在C语言中将字符串转换为合法类名#,python,c#,string,.net-core,Python,C#,String,.net Core,我想做与此Python函数相同的事情,但使用C#。 理想情况下,使用类似Python的单行代码 def to_classname(name:str)->str: """ something-2do->something 2do firefox开发者->FirefoxDeveloper """ 返回“”。join([x.capitalize()表示名称中的x.split('-')) 基于此,我提出了这个解决方案 using System; using System.Linq;
理想情况下,使用类似Python的单行代码
def to_classname(name:str)->str:
"""
something-2do->something 2do
firefox开发者->FirefoxDeveloper
"""
返回“”。join([x.capitalize()表示名称中的x.split('-'))
基于此,我提出了这个解决方案
using System;
using System.Linq;
public class Program
{
public static void Main()
{
var rawName = "firefox-developer";
string className=string.Empty;
rawName.Split('-').ToList().ForEach(name => className += (name.First().ToString().ToUpper() + name.Substring(1)));
System.Console.WriteLine(className);
}
}
您可以使用以下命令。它拆分连字符上的字符串并删除任何空字符串(由于多个连续连字符)。然后,在将每个条目映射到一个字符串(其中第一个字母为大写字母,其余字母为小写字母)后,它连接这些条目
public static string ToClassName(string str)
{
var splits = str.Split('-', StringSplitOptions.RemoveEmptyEntries);
return string.Concat(splits.Select(s => char.ToUpper(s[0]) + (s.Length > 1 ? s.Substring(1).ToLower() : "")));
}
您可能需要添加以下内容:
using System.Linq;
请注意,它不会验证微不足道的输入。为什么需要转换?Python将类转换为字符串。在c语言中,没有理由转换为字符串。因此您不需要该函数。
string.Concat(name.Split('-')。选择(x=>char.ToUpper(x[0])+x.Substring(1));