var values = new[] { "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "?" };
if (values.Any(s => passwordSec.Contains(s)) && passwordSec.Length > 7)
我一直在试图找出如何使任何方法从数组中获取2个或更多字符变为真实的方法。到目前为止,只需要在passwordSec中找到一个即可(这是密码字符串)。
最佳答案
Any
明确表示如果任何一项与提供的谓词匹配,它将返回true。您要检查的是有多少项与提供的谓词匹配。因此,请使用Count
。
if (values.Count(s => passwordSec.Contains(s)) >= 2 && passwordSec.Length > 7)
或者,如果要检查它们是否使用了两个不同的
values
项,则可以使用Intersect
,它会丢弃重复项:if (values.Intersect(passwordSec).Count() >= 2 && passwordSec.Length > 7)
关于c# - C#LINQ从数组中抽取2个或更多,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44712816/