字符串的第一个字符可以通过以下操作检索吗?

MyString.ToCharArray[0]

当前回答

从字符串中获取字符可能取决于编码(字符串默认为UTF-16)

https://stackoverflow.com/a/32141891

string str = new String(new char[] { '\uD800', '\uDC00', 'z' });
string first = str.Substring(0, char.IsHighSurrogate(str[0]) ? 2 : 1);

其他回答

只是MyString[0]。这使用了字符串。识字课索引器。

你问题的答案是否定的。

正确的是MyString[字符的位置]。对于你的例子MyString[0], 0是任何字符串的第一个字符。

一个字符值被指定为'(单引号),就像这个x字符值被写为'x'。

字符串值被指定为"(双引号),就像这个x字符串值被写为"x"。

所以Substring()方法也是不返回字符,Substring()方法返回字符串!!

字符串是一个字符数组,最后一个字符必须是'\0' (null)字符。这就是字符数组和字符串(字符串是一个字符数组,最后一个字符为“字符串结束标记”'\0' null)之间的区别。

还要注意“x”不等于“x”。 因为"x"实际上是"x" + " \0 "

试试这个,

字符串s1 =“好”; 字符串s = s1.Substring (0,1);

在c# 8中,你可以使用范围。

myString[0..Math.Min(myString.Length, 1)]

加一个?在myString之后处理空字符串。

MyString[0]和MyString.ToCharArray()[0]之间的区别是前者将字符串视为只读数组,而ToCharArray()创建一个新数组。前者在几乎任何情况下都更快(也更简单),但如果您有一个需要接受数组的方法,或者如果您想更改数组,则可能需要ToCharArray。

如果字符串不是非空或非空的,你可以这样做:

string.IsNullOrEmpty(MyString) ? (char?)null : MyString[0]

它返回一个char?null或字符串中的第一个字符,视情况而定。