SamAccountName到UpperCase

时间:2016-09-14 16:30:50

标签: c# userprincipal

SamAccountName的{​​{1}}属性是否不返回字符串?我正在尝试使用UserPrincipal的第一个字符并将其转换为SamAccountName,但.ToUpperCase() <{1}}不可用.ToUpperCase()

SamAccountName

3 个答案:

答案 0 :(得分:1)

正如documentation清楚地表示的那样,SamAccountName返回一个字符串。

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

您需要先在结果上调用ToString()

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

答案 1 :(得分:1)

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)则不会。

答案 2 :(得分:0)

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

试试这个