c# - 计算字符串中字母数字字符的优雅方法?

标签 c# .net string linq alphanumeric

我正在寻找一种优雅的方式,最好是一个简短的 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 方法:

password.Count(char.IsLetterOrDigit)

这更像是您正在做的事情的直接副本:

password.Count(c => !char.IsLetterOrDigit(c))

关于c# - 计算字符串中字母数字字符的优雅方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11569951/

相关文章:

c - 如何在C中将整数转换为字符串?

c# - c#中的日期格式转换

C# 高 double

asp.net - Visual Studio 2005 上的 Linq

c# - 如何处理我们没有引用的一次性元素?

c# - 在C#中创建数据包

C#从不同的对象分配一个变量

c# - SQLite。修复 sqlite-net-wp8 项目依赖项

c# - 如果 Usercontrol 位于 Repeater 中,则不会初始化 Usercontrol 中的控件

c# - 将许多变量从 Unity 发送到 Arduino