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函数相同的事情,但使用C#。
理想情况下,使用类似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));