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

C#: how to get first character of a string?

我们已经有 a question about getting the first 16-bit char of a string.

这包括问题代码:

MyString.ToCharArray[0]

和接受的答案代码:

MyString[0]

我想这有一些用途,但是当字符串包含文本时,我们希望都知道单个 16 位字符不能容纳一个字符,即使在我们实际指的限制意义上也是如此 "codepoint".

我是一名程序员,但不是 C# 程序员。我只是想帮助在线同事修复这样的错误,以防你觉得这是一个太基础的问题。

因此,如果我们在 C# 中有一个 char 数组中的字符串,以正确的 UTF-16 编码,可能包括一个代理对作为第一个 character/codepoint,因此可能由两个 chars,我如何获得第一个字符?

(我天真地假设微软为此提供了一个字符串函数,我不必手动检查代理对。)

使用这个:

str = str.Substring(0, 1);

str[0];

str.FirstOrDefault();

您可以使用 StringInfo class,它可以识别代理项对和多字节字符。

        var yourstring = "test"; // First char is multibyte char.
        var firstCharOfString = StringInfo.GetNextTextElement(yourstring,0);