c# - 最佳实践 - 将字符串的第一个字符转换为小写

标签 c# .net string

我想要一个将字符串的第一个字符转换为小写的方法。

我的方法:

1.

public static string ReplaceFirstCharacterToLowerVariant(string name)
{
    return String.Format("{0}{1}", name.First().ToString().ToLowerInvariant(), name.Substring(1));
}

2.

public static IEnumerable<char> FirstLetterToLowerCase(string value)
{
    var firstChar = (byte)value.First();
    return string.Format("{0}{1}", (char)(firstChar + 32), value.Substring(1));
}

您的方法是什么?

最佳答案

我会使用简单的串联:

Char.ToLowerInvariant(name[0]) + name.Substring(1)

第一个解决方案没有优化,因为 string.Format 很慢,如果你有一个永远不会改变的格式,你就不需要它。它还会生成一个额外的字符串来将字母转换为小写,这是不需要的。

“+ 32”的方法很难看/不可维护,因为它需要了解 ASCII 字符值偏移量。它还会生成包含 Unicode 数据和 ASCII 符号字符的错误输出。

关于c# - 最佳实践 - 将字符串的第一个字符转换为小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3565015/

相关文章:

c# - 停止 visual studio 调试将斜杠放入包含双引号的字符串中

c# - CallerInfo,获取传递给方法的变量名称(如 nameof)

c# - 运行 .NET 4.61 安装程序,仍然没有在新项目对话框中看到新的框架配置文件?

.net - 寻找 .NET 和 Mono 的 UI 库

python - 将字符串中的十六进制字符附加到字符串

python - 在 pandas 列中搜索字符串

c# - 将位图和 Png 图像转换为文本的简单方法,反之亦然

c# - 如何借助 C# 正则表达式从应用商店或游戏市场 url 获取唯一 ID 或包名称?

c# - 位置 inheritInChildApplications 杀死调试器?

c++ - 如何检查字符串是否包含一定数量的字符并包含(或不包含)某些字符? C++