【发布时间】:2014-04-25 12:46:46
【问题描述】:
我有一个 LINQ 查询来从我的数据库中获取数据:
query.Select(b => b.BooleanValue.Value).Distinct().ToArray();
这个查询给了我错误
Linq 无法将类型“bool[]”隐式转换为“object[]”。
我在十进制值上得到同样的错误,但在文本值上一切正常。我在整个互联网上进行了搜索,只找到了对object 到bool 有问题的人。
你知道如何(在 LINQ 中 select)将 decimal 转换为 object 吗?
【问题讨论】:
-
您使用什么 linq 提供程序?
-
不应该有
b => b.BooleanValue.GetValueOrDefault()吗?或者你确定每个布尔值都会有一个值? -
不,它是一个可为空的布尔值
-
采用不同的布尔值有什么意义?由于您使用的是
Value的Nullable<bool>,因此您知道这些值是非空的。因此,您将获得一个最多包含两个元素的数组(当query为空时,您将获得零个元素,当所有布尔值相同时获得一个元素,当true和false都存在时获得两个元素)。您是否尝试检查与布尔标志混合相关的一些特殊条件(例如“一些标志是true”或“所有标志都相同”?) -
@jfamvg:当
b.BooleanValue = null出现时,.Select()会出现异常,因为.Value将不存在。