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