我想有一个方法,可以将字符串的第一个字符转换成小写.

我的方法是:

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符号字符生成不正确的输出.

.net相关问答推荐

为什么在WinForm应用程序中创建组件类椭圆会在www.example.com中没有响应

";Make Async ValueTask/ValueTask方法分期分配发生了什么?

Powershell机器令牌组

获取Ef-Core集合的DeleteBehavior

Visual Studio 2022 中的目标操作系统和目标运行时有什么区别?

F#:跨度、提升和底部类型(或缺乏)

查找 2 个已知值之间的字符串

如何在 C# 中打开 Excel 文件?

找不到 Microsoft.Office.Interop Visual Studio

为什么要判断这个!= null?

将跟踪输出重定向到控制台

什么是 Hashtable 的通用版本?

在同一解决方案中引用 2 个不同版本的 log4net

Dispatcher.CurrentDispatcher 与 Application.Current.Dispatcher

强制 XmlSerializer 将 DateTime 序列化为 'YYYY-MM-DD hh:mm:ss'

使用 DateTime.ToString() 时获取日期后缀

从 Visual Studio 2015 发布 - 允许不受信任的证书

如何为 Dapper 查询动态创建参数

多行 C# 插值字符串文字

为什么 IList 不支持 AddRange