运算符 '==' 不能应用于 mvc c# 中类型为 'bool' 和 'str

本文关键字:bool str 类型 mvc 不能 应用于 运算符 | 更新日期: 2023-09-27 18:37:00

我是MVC C#的新手。我收到此错误,我已经检查并发现了类似的错误,这不会导致我的错误。

错误是 - "运算符 '==' 不能应用于类型为 'bool' 和 'string' 的操作数"

守则是 -

List<RptItem> _r2 = _r1.Where(xx => xx.Value == ("rcat"))
            .Select(xx=>(KeyValuePair<string, string>?)xx)
            .FirstOrDefault();

有人可以帮助我,我需要做什么。

谢谢

运算符 '==' 不能应用于 mvc c# 中类型为 'bool' 和 'str

就像错误状态一样,您试图将boolxx.Value)与string"rcat")进行比较,由于明显的原因,这是不允许的。

在 c# 和几乎所有强类型语言中,您都被迫将正确类型的参数传递给函数、方法和运算符。运算符 '==' 通常重载为仅接受两个相同类型的对象,因此无法将字符串类型的对象与 bool 类型的对象进行比较。

您可能会对 LINQ 查询的第二部分感到困惑: .Select(xx=>(KeyValuePair<string, string>?)xx) .

仅仅因为将xx强制转换为KeyValuePair<string, string>?并不意味着xx值在另一个作用域中属于该类型:(xx => xx.Value == ("rcat") 。这两个xx是两个不同的变量!

如果要将xx.Value变成字符串,以便将其与"rcat"进行比较,则可以选择在xx.Value上调用函数ToString()(尽管由于xx.Value是布尔值,因此调用此方法只会生成等于 "true""false" 的字符串)。