C #: как получить первый символ строки? - PullRequest
153 голосов
/ 07 октября 2010

Можно ли получить первую char строки, выполнив следующее?

MyString.ToCharArray[0]

Ответы [ 9 ]

335 голосов
/ 07 октября 2010

Просто MyString[0]. При этом используется индексатор String.Chars .

47 голосов
/ 07 октября 2010

Mystring[0] должно быть достаточно

16 голосов
/ 07 октября 2010

Разница между MyString[0] и MyString.ToCharArray()[0] заключается в том, что первый обрабатывает строку как массив только для чтения, а ToCharArray() создает новый массив.Первый будет быстрее (и легче) почти для всего, где он будет работать, но ToCharArray может понадобиться, если у вас есть метод, который должен принять массив, или если вы хотите изменить массив.

Если строка не известна как ненулевая и непустая, вы можете сделать:

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

, которая возвращает char? либо нулевого, либо первого символа в строке, в зависимости от ситуации..

14 голосов
/ 27 декабря 2013

Вы можете использовать LINQ

char c = mystring.FirstOrDefault()

Будет равно '\0', если строка пуста.

12 голосов
/ 11 августа 2017

Попробуйте это,

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

6 голосов
/ 18 марта 2016

Просто другой подход:

string mystr = "hello";
MessageBox.show(mystr.Substring(0, 1));
6 голосов
/ 07 октября 2010

Или вы можете сделать это:

MyString[0];
4 голосов
/ 07 октября 2010

Я думаю, вы ищете это MyString.ToCharArray()[0]

:)

Но вы также можете использовать MyString[0].

0 голосов
/ 01 декабря 2017

получение символа из строки может зависеть от конца (строка по умолчанию - 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...