运算符 '==' 不能应用于 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();
有人可以帮助我,我需要做什么。
谢谢
就像错误状态一样,您试图将bool
(xx.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"
的字符串)。