我正在寻找一个优雅的方式,最好是一个短linq表达式来计算给定字符串包含多少个字母数字字符。优雅的方法来计算字符串中的字母数字字符?
的“无聊”的方式我现在做的是这样的:
int num = 0;
for (int i = 0; i < password.Length; i++)
{
if (!char.IsLetterOrDigit(password, i))
{
num++;
}
}
if (num < MinRequiredNonAlphanumericCharacters)
return false;
这是相当短的了,但我相信有一些LINQ魔术这可以在更短的,同样可以理解的表达来完成,对?
linq方式不适合一个很好的优化,即一旦有足够的字母数字字符就停止搜索字符串。好吧,考虑到密码及其长度的上下文,也许这不是一个'非常好'的优化... – corsiKa 2012-07-19 22:01:04
@corsiKa我不认为他会优化如此多的优化/语法糖... – 2012-07-19 22:05:10
这是正确的,我我正在做那个部分之后的PBKDF2哈希,所以这里几毫秒不是问题。 – magnattic 2012-07-19 22:08:43