UserPrincipal的SamAccountName属性不返回字符串吗?我正在尝试获取SamAccountName的第一个字符并将其转换为.ToUpperCase(),但.ToUpperCase()不适用于SamAccountName
private void firstCharToUppercase(Prinicpal principal)
{
UserPrinicpal user = principal as UserPrincipal;
user.SamAccountName[0].toUpperCase();
}发布于 2016-09-15 00:34:51
正如documentation清楚地表示的那样,SamAccountName返回一个字符串。
但是,通过使用索引器,您将检索类型为char而不是类型string的第一个字符。
您需要先对结果调用ToString()。
user.SamAccountName[0].ToString().ToUpper();发布于 2016-09-15 00:36:28
在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)则不会。
发布于 2016-09-15 00:34:12
private void firstCharToUppercase(Prinicpal principal)
{
UserPrinicpal user = principal as UserPrincipal;
user.SamAccountName[0].ToString().ToUpper();
}试着这样做
https://stackoverflow.com/questions/39495497
复制相似问题