SamAccountName to UpperCase

Ли SamAccountName собственностью UserPrincipal не вернуть строку? Я пытаюсь взять первый персонаж моего SamAccountName и преобразовать его .ToUpperCase() но .ToUpperCase() недоступно для SamAccountName

private void firstCharToUppercase(Prinicpal principal)
{
    UserPrinicpal user = principal as UserPrincipal;
    user.SamAccountName[0].toUpperCase();
}

3 ответа

Решение

Как четко обозначено в документации, SamAccountName возвращает строку

Однако, используя индексатор, вы получаете первый символ как тип charне тип string,

Вам нужно позвонить ToString() на результат первым.

user.SamAccountName[0].ToString().ToUpper();

Когда вы используете индексатор на string, он вернется char представляющий символ в этом индексе. Тип char есть ToUpper метод, но это статично. Я не знаю, почему команда.NET решила сделать string.ToUpper нестатический и char.ToUpper статичный.

Попробуй это:

private void firstCharToUppercase(Prinicpal principal)
{
    UserPrinicpal user = principal as UserPrincipal;
    char.ToUpper(user.SamAccountName[0]);
}

Этот метод лучше делать заглавными буквами из одного символа, чем вызывать ToString() на персонажа первым. ToString() выделяет строку, которую потом нужно будет снова собрать, а char.ToUpper(char) не.

    private void firstCharToUppercase(Prinicpal principal)
{
    UserPrinicpal user = principal as UserPrincipal;
    user.SamAccountName[0].ToString().ToUpper();
}

Попробуй вот так

Другие вопросы по тегам