我正在尋找一個優雅的方式,最好是一個短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