C#:如何获取字符串的第一个字符?

Cra*_*ton 163 c# string

可以char通过执行以下操作来检索字符串中的第一个字符串吗?

MyString.ToCharArray[0]
Run Code Online (Sandbox Code Playgroud)

Mat*_*hen 355

只是MyString[0].这使用String.Chars索引器.


aqw*_*ert 52

Mystring[0] 应该够了

  • 不应该'花费那些额外的五秒钟打字,"应该足够了". (48认同)
  • @johnc:或者更好,将鼠标悬停在时间戳上. (10认同)

San*_*aar 18

试试这个,

string s1="good"; string s=s1.Substring(0,1);

  • 此答案与所选答案之间的区别在于此解决方案返回一个字符串,另一个返回一个字符. (4认同)

Jon*_*nna 17

MyString[0]和之间的区别在于MyString.ToCharArray()[0]前者将字符串视为只读数组,同时ToCharArray()创建新数组.对于几乎可以工作的任何东西,前者会更快(并且更容易),但ToCharArray如果你有一个需要接受数组的方法,或者你想要更改数组,则可能是必要的.

如果不知道该字符串是非null且非空,则可以执行以下操作:

string.IsNullOrEmpty(MyString) ? (char?)null : MyString[0]
Run Code Online (Sandbox Code Playgroud)

它会根据需要返回char?null或字符串中的第一个字符.


Dmi*_* S. 16

您可以使用LINQ

char c = mystring.FirstOrDefault()
Run Code Online (Sandbox Code Playgroud)

它将等于'\0'字符串是否为空.


Ssh*_*ack 10

从 C# 8.0+ 开始,我们可以使用范围索引器语法。

下面的代码:

var name = "Dotnet".Substring(0, 1)
Run Code Online (Sandbox Code Playgroud)

可以使用范围语法编写:

var name = "Dotnet"[..1]
Run Code Online (Sandbox Code Playgroud)

在 Dotnet fiddle 中尝试一下

更多示例请参见官方文档

如果输入字符串小于范围索引,上面的代码将抛出异常。这个 LINQ 将防止这个问题:

var name = "Dotnet".Take(1).ToArray()
Run Code Online (Sandbox Code Playgroud)

在 Dotnet fiddle 中尝试一下


jam*_*ond 8

或者你可以这样做:

MyString[0];
Run Code Online (Sandbox Code Playgroud)

  • 是的,我认为答案已经涵盖了. (7认同)
  • @Robert,naw,我想再看一次,只是为了确定! (5认同)

knk*_*k24 7

另一种方法:

string mystr = "hello";
MessageBox.show(mystr.Substring(0, 1));
Run Code Online (Sandbox Code Playgroud)


Nay*_*yan 5

我想你在找这个 MyString.ToCharArray()[0]

:)

但是您也可以使用MyString[0]