SamAccountName 到大写

SamAccountName to UpperCase

UserPrincipalSamAccountName属性不是return字符串吗?我正在尝试获取 SamAccountName 的第一个字符并将其转换为 .ToUpperCase().ToUpperCase() 不适用于 SamAccountName

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

这样试试

明确表示为documentationSamAccountName、returns一个字符串。

但是,通过使用索引器,您检索的第一个字符类型为 char,而不是类型 string

您需要先对结果调用 ToString()

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

当您在 string 上使用索引器时,它将 return 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) 则不需要。