强制转换为字符串不会让我使用All()方法

时间:2018-11-20 00:15:32

标签: c# wpf linq

编写输入验证:

public override ValidationResult Validate(object value, CultureInfo cultureInfo)
    {
        if ((string)value.All(c => Char.IsLetterOrDigit(c) || c.Equals('_')))

返回的“对象值”将是文本框中的文本。我得到的错误是:

object does not contain a definition for All and no accessible extension method 'All' accepting a first argument type 'object' could be found

为什么不能将其转换为字符串然后在其上使用IEnumerable?这是所有内容之下的一个字符串。

1 个答案:

答案 0 :(得分:2)

强制转换会作用于您的整个语句,而不仅仅是value参数。将其括在括号中:

((string)value).All(...)