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();
}
Попробуй вот так